<body>
<h2>登陆失败了 ,请重新<a href="Load.jsp">登陆</a></h2> <br>
</body>
基本语法:<%@page%><%@include%><jsp: include><jsp: forward>已经学过了,而且JSP可以进行数据库的连接操作,那么就可以进行web开发
既然要想登陆,首先要有表,在实际中所有的用户登陆的操作都必须保存在数据表中,用户输入用户名和密码。进行验证、如果正确则表示登陆成功,如果不正确则登陆失败。
首先启动数据库 建立一个用户表
name | userid | password |
tlh | 111 | 222lll |
其中的原理就是,用户根据的实际的表单输入用户名和密码,之后提交到一个页面上进行验证,验证是从数据库中查出来的。如果验证成功则跳转到成功页,如果登陆失败,则跳转到失败页面上去。完成这个程序需要四个页面:Login.jsp 提供用户登陆的表单。可以输入用户名密码 Login_check.jsp 登陆检查页,根据表单提交过来的id和密码进行数据库 的验证,成功则跳转到成功页面失败则跳转到失败页面 Login_success.jsp 登陆成功页表示欢迎页
Login_failure.jsp 登陆失败页 并提供重新登陆的超链接。
登陆界面提供表单
<body>
<center>
<h1>登陆操作</h1>
<hr>
<form action="Login_check.jsp"method="post">
<table border="1">
<tr>
<td colspan="2">用户登录</td>
</tr>
<tr>
<td>登录id:</td>
<td><input type="text"name="id"></td>
</tr>
<tr>
<td>登录密码:</td>
<td><input type="password"name="password"></td>
</tr>
<!-- 一定要有提交信息-->
<tr>
<td colspan="2">
<input type="submit"value="登陆">
<input type="reset"value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
登陆表单出来后,提交到Login.jsp 在此页面 首先是连接数据库
<body>
<%
String id=request.getParameter("id");
String pwd=request.getParameter("password");
out.print(id+pwd);
%>
<center>
<h1>登陆操作</h1>
<hr>
<!-- -->
<%! //定义若干个数据库的连接常量
public static final String DBDRIVER=
"com.mysql.jdbc.Driver";
public static final String DBURL=
"jdbc:mysql://localhost:3306/test";
public static final String DUSER="root";
public static final String DBPASS="";
%>
<%
Connection conn=null ;//数据库连接
PreparedStatement pstmt=null;//数据库预处理
ResultSet rs=null;//查询要处理的结果集
boolean flag=false;//保存标记
String name=null;//保存真实姓名
%>
<%try{ %>
<% name=request.getParameter("id"); %>
<%
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DUSER,DBPASS);
String sql="SELECT name FROM loaduser WHERE userid=? AND password=?";
//进行实例化
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,name);
pstmt.setString(2,request.getParameter("password"));
rs=pstmt.executeQuery();
if(rs.next()){//如果有数据则执行
flag=true;//表示登陆成功
name=rs.getString(1);
}
%>
<%} catch(Exception e){
e.printStackTrace();
}
finally{
try{
//一定不要忘了关闭数据库
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e){
}
} %>
<% if (flag){
out.print("llll"); //登陆成功 注意标签指令应该写在哪里 %>
<jsp:forward page="Login_success.jsp" >
<jsp:param value="<%=name%>" name="uname"/>
</jsp:forward>
<%} else{//登陆失败
%>
<jsp:forward page="Login_failure.jsp"/>
<%} %>
</center>
如果登陆成功的话直接跳转到Login_success.jsp
<body>
<h2>欢迎<font color="red"><%=request.getParameter("uname") %></font>
guanglin</h2>
失败的话则跳转到Login_failure.jsp页面
<body>
<h2>登陆失败了 ,请重新<a href="Load.jsp">登陆</a></h2> <br>
</body>
当然 我们可以把Load和Login_failure页面可以换成HTML页面 动态和静态相分开会提升页面,因为动态页面需要WEb容器而静态的不需要会快一些。
这样就做成了一个登陆界面结合JDBC.