菜鸟上路-JSP用户登陆简单程序的实现
1.设计四个页面:
登陆页面Login.htm 提供客户登陆的表单
登陆判断页面Login_Check.jsp 根据表单提供过来的ID与PWD进行数据库验证
登陆成功页面Login_Success.jsp 登陆成功,提示欢迎信息
登陆失败页面Login_Failure.htm,提示输入错误,提供返回链接
2.代码实现
1)Login.htm
<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
Welcome. <br>
<%="ID"%>
</body>
4)Login_Failure.htm
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