菜鸟上路-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

 

 

 

posted @ 2011-03-27 16:56  1店小二  阅读(29995)  评论(1编辑  收藏  举报