转载自 : 这里
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标记出来。有三种:<%%>,<%!%>,<%=%>
2.1)<% %>可以:定义局部变量,编写语句。
2.2)<%!%>可以:定义全局变量,方法,类。(虽然可以,但不建议在JSP页面定义,可以用JavaBean方式调用,注意分层)
2.3)<%=%>可以:输出一个变量或一个具体值。
也可以使用<jsp:scriptlet >String S="test";</jsp:scriptlet><%="S" %>这种标签来使代码优化,减少多出出现<%%>.
3)指令
指令有Page,include,forward等等这几种
3.1)page页面指令:当前页面的,常用ContextType,import等
3.2)include包含指令:静态与动态之分
3.3)forward跳转指令:将用户的一个request请求从一个页面传递到另外一个页面。通俗讲:Alice让我处理一件事,我让Bob去处理。请求从我这里传到了Bob那里。
3.3.1)不传递参数的:<jsp:forward page="Login_Failure.jsp"/>
3.3.2)传递参数:<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");
5.1)page 是当前页面的,跳转页面后无效。
5.2)request 是传递的,跳转页面后仍可读取,但是超链接无效(超链接时传递中断)
5.3)session 打开的页面都有效,超链接也有效。
5.4)cookies
5.5)response