• 菜鸟上路JSP用户登陆简单程序的实现


     1.设计四个页面:

    登陆页面Login.htm 提供客户登陆的表单

    登陆判断页面Login_Check.jsp 根据表单提供过来的ID与PWD进行数据库验证

    登陆成功页面Login_Success.jsp 登陆成功,提示欢迎信息

    登陆失败页面Login_Failure.htm,提示输入错误,提供返回链接

    2.代码实现

    1)Login.htm

        <form  action="login_check.jsp" method="post">
            
    <table border="1">
               
    <tr><Td colspan="2">USerLogin</Td></tr>
               
    <tr><td>UserName:</td><td><input type="text" name="ID"></td></tr>
               
    <tr><td>Password:</td><td><input type="password" name="PWD"></td></tr>
              
    <tr><td colspan="2"><td><input type="submit" value="Login"></td><td><input type="reset" value="Reset"></td></tr>
            
    </table>
        
    </form>

    2)Login_Check.jsp

    <%
     DataSource ds = null;
     try{
      String dbUrl="jdbc:oracle:thin:@localhost:8080:yourdatabase";
         String Username="name";
         String Password="password";
         Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
         Connection conn = DriverManager.getConnection(dbUrl,Username,Password);//连接
         Statement stmt=conn.createStatement();//会话
         ResultSet rst=stmt.executeQuery("select * from yourTable");
      
      String ID=null;
      String PWD=null;
     while(rst.next())
     {
      ID=rst.getString("yourColumnName");
      PWD=request.getParameter("PWD");
     }
     if(ID.equals(ID))
     {
     %><
    jsp:forward page="Login_Success.jsp">
    <jsp:param name="uname" value="<%=ID%>"/>
    </jsp:forward>
    <%}else{%>
    <jsp:forward page="Login_Failure.jsp"/>
    <%
    }
    %>

    3)Login_Success.jsp

     <body>
      Welcome. 
    <br>
      
    <%="ID"%>
     
    </body>

    4)Login_Failure.htm

      <body>
        So sorry about that. 
    <br>
        
    <a href="Index.html">Loin</a>
      
    </body>

    3.涉及知识点

    1)静态页面与动态页面分开

      Login.htm与Login_Failure.htm两页面没有Java代码出现,故用htm页面。因为静态请求不需要经过容器,可以适当提高运行速度。

    2)Scriptlet脚本小程序

      所有嵌入HTML中的Java代码都需用Scriptlet标记出来。有三种:<%%>,<%!%>,<%=%>

      21)<% %>可以:定义局部变量,编写语句。

      22)<%!%>可以:定义全局变量,方法,类。(虽然可以,但不建议在JSP页面定义,可以用JavaBean方式调用,注意分层)

      23)<%=%>可以:输出一个变量或一个具体值。

       也可以使用<jsp:scriptlet >String S="test";</jsp:scriptlet><%="S" %>这种标签来使代码优化,减少多出出现<%%>.

    3)指令

      指令有Page,include,forward等等这几种

      31)page页面指令:当前页面的,常用ContextType,import等

      32)include包含指令:静态与动态之分

      33)forward跳转指令:将用户的一个request请求从一个页面传递到另外一个页面。通俗讲:Alice让我处理一件事,我让Bob去处理。请求从我这里传到了Bob那里。

        331)不传递参数的:<jsp:forward page="Login_Failure.jsp"/>
        332)传递参数:<jsp:forward page="Login_Success.jsp"><jsp:param name="uname" value="<%=ID%>"/></jsp:forward>

    4)JSP注释
      有三种:<!-- --> <% // %>

    5)JSP内置对象

      有几种属性:page,request,session,application.使用方法:page.setAttribute("name","Name");

         51)page是当前页面的,跳转页面后无效。

      52)request是传递的,跳转页面后仍可读取,但是超链接无效(超链接时传递中断)

      53)session打开的页面都有效,超链接也有效。

      54)cookies

      55)response

     

  • 相关阅读:
    There are multiple modules with names that only differ in casing. 问题的一种解决方法
    微软官方tfs源码转移至华为软开云操作过程 by vs2019
    【转载】docker hub下载速度太慢,更新国内源
    visual studio 2019不能在vue文件中直接识别less语法
    visual studio 2019 中初始化 vue.js 项目
    vs在微软官方tfs创建私有项目过程
    WinCC OA-C#-开发一个EricManager
    WinCC OA-JS-CTRL脚本与JS交互
    WinCC OA-JS-使用plotly.js开发个性化图表
    WinCC OA-JS-WebView解析及开发环境搭建
  • 原文地址:https://www.cnblogs.com/xiaoer/p/1989298.html
Copyright © 2020-2023  润新知