登录界面的验证登录以及session的使用

简介: 构建登录系统,login.jsp接收用户输入,POST数据到check.jsp验证。正确时在session中存储用户名并重定向至admin.jsp,该页检查session中的username,存在则显示管理员界面,否则返回login.jsp。session非一一对应用户浏览器,且在check.jsp中设置session超时为60秒。实验包括流程图及不同登录状态的界面展示。

登录界面的验证登录以及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)绘制整个处理的流程图;
image.png

(4)问:服务器端的每个 session 和用户浏览器是一 一对应关系吗?
不是
image.png

(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.登录界面
image.png

2.登录失败界面
image.png

3.登录成功的界面
image.png

分享一张浏览器和session的内幕图示
!image.png

好了,今天的分享就到这里了。点个赞吧
在这里插入图片描述

目录
相关文章
|
6月前
|
安全 算法 Java
【SpringSecuirty6.x】自动登录和注销登录
【SpringSecuirty6.x】自动登录和注销登录
51 0
|
6月前
|
存储 前端开发
通过session实现用户的登录与登出功能
通过session实现用户的登录与登出功能
205 0
|
6月前
|
存储 前端开发 Java
①实现基于session的登录流程:发送验证码、登录注册、校验登陆状态
①实现基于session的登录流程:发送验证码、登录注册、校验登陆状态
184 0
|
存储 数据安全/隐私保护
使用session记住用户登录信息
使用session记住用户登录信息
251 0
|
关系型数据库 MySQL 数据库
【Django | allauth】登录_注册_邮箱验证_密码邮箱重置
【Django | allauth】登录_注册_邮箱验证_密码邮箱重置
【Django | allauth】登录_注册_邮箱验证_密码邮箱重置
[导入]用户登录及验证用户是否登录的代码
用户登录及验证用户是否登录的代码文章来源:http://blog.csdn.net/jyk/archive/2006/08/15/1067382.aspx
692 0
|
数据安全/隐私保护 API 移动开发
登陆功能的实现
我不喜欢废话,上代码 /// /// 运行程序返回进程pid /// /// /// static public int RunProgram(string qqPath) ...
934 0
|
JavaScript 前端开发 中间件