登录校验由最简单的例子,到能够应用到实际项目,一步一步学习和实现。
总共分几个目标,这一篇实现目标1
目标1:输入用户名和密码,如果输入的用户名和密码分别为zs和abc,则密码正确,显示输出结果登录成功,并用cookie记录下登录名。
实现:
三个文件,
1.login.jsp 用于输入用户名和密码,并能够显示是否已经登录(显示cookie状态);
2.check.jsp 用于校验用户名和密码,如果正确,则转发到success.jsp页面,并将用户名记录到cookie中;如果错误,则提示“用户名密码错误”;
3.success.jsp显示登录成功的欢迎界面,获取并显示用户名。
1.login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陆界面</title>
</head>
<body>
<%!
String uname;
%>
<%
boolean flag=false;
Cookie[] cookies=request.getCookies();
for (Cookie cookie:cookies){
if(cookie.getName().equals("uname")){
uname=cookie.getValue();
flag=true;
}
}
if(flag){
out.print("cookie:"+uname);
}
else{
out.print("cookie已失效");
}
%>
<form action="check.jsp" method="post">
用户名:<input type="text" name="uname" value="<%=(uname==null?"":uname)%>"> <br/>
密码:<input type="password" name="upwd"><br/>
<input type="submit" value="登录"><br/>
</form>
</body>
</html>
2.check.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>验证页面Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
if(name.equals("zs")&&pwd.equals("abc")){
Cookie cookie=new Cookie("uname",name);
cookie.setMaxAge(20);
response.addCookie(cookie);
//response.sendRedirect("success.jsp"); 重定向
//改为请求转发
request.getRequestDispatcher("success.jsp").forward(request,response);
//response.sendRedirect("A.jsp");
}else{
out.print("用户名或密码错误!");
}
%>
</body>
</html>
3.success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>成功登陆显示页面</title>
</head>
<body>
登录成功!</br>
欢迎您:
<%
String name=request.getParameter("uname");
out.print(name);
%>
</body>
</html>