登录界面的验证登录以及session的使用
一、实验要求
(1) 新建 login.jsp 页面,其中,包含登录所需用户名与密码字段、
以及提交(input)和重新填写按钮(reset);表单method="POST"、action="check.jsp";
(2) 新建 check.jsp 页面,要求验证 login.jsp 中所提交的用户名与密码是否正确,
默认(username=张三, 密码=123456);
如果正确,则在 session 中存储用户信息 username=张三,并跳转到 admin.jsp 页面;
其中,admin.jsp 中必须先检查用户登录状态 session.getAttribute("username"),
若为空,则跳转到 login.jsp(不允许未登录用户直接访问此页面),
否则,显示管理员操作界面(内容自行设置);
(3)绘制整个处理的流程图;
(4)问:服务器端的每个 session 和用户浏览器是一 一对应关系吗?
不是
(5)在 check.jsp 中,设置 session 的生存期为 60 秒;停止操作 60 多秒后,再访问 admin.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>Insert title here</title>
</head>
<body>
<%Object uName = session.getAttribute("uName");
//判断用户是否登录
if(uName == null){
session.setAttribute("errMsg","你还没登录,请登录...");
//重定向到登录页面
response.sendRedirect("login.jsp");
}%>
<h3>欢迎<%=uName%>,来到管理员界面</h3>
</body>
</html>
2.check.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%//确保获取的中文不会乱码
request.setCharacterEncoding("UTF-8");
//获取客户端提交的用户名
String uName = request.getParameter("uName");
//获取客户端提交的口令
String uPassword = request.getParameter("uPassword");
if("张三".equals(uName) && "123456".equals(uPassword)){
//将用户名保存到会话中,后面页面通过检查此对象的存在与否判断用户是否登录,并将用户名显示到页面
session.setAttribute("uName",uName);
//重定向到被保护页面
response.sendRedirect("admin.jsp");
}else{
//设置错误信息,用于登录页面提示
session.setAttribute("errMsg","用户名或口令不正确...");
//重定向到登录页面
response.sendRedirect("login.jsp");
}%>
</body>
</html>
3.admin.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>
<%Object uName = session.getAttribute("uName");
//判断用户是否登录
if(uName == null){
session.setAttribute("errMsg","你还没登录,请登录...");
//重定向到登录页面
response.sendRedirect("login.jsp");
}%>
<h3>欢迎<%=uName%>,来到管理员界面</h3>
</body>
</html>
三、实现效果
1.登录界面
2.登录失败界面
3.登录成功的界面
分享一张浏览器和session的内幕图示
!
好了,今天的分享就到这里了。点个赞吧