登录界面的验证登录以及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

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

目录
相关文章
|
Java UED
使用response.sendRedirect实现页面重定向
使用response.sendRedirect实现页面重定向
|
JSON JavaScript IDE
JSON 数据格式化方法
JSON 数据格式化方法
1208 3
|
9月前
|
供应链 数据可视化 Java
云端SaaS诊所管理系统(java源码),实现挂号、开方、收费、发药全流程管理
云诊所SaaS系统,集患者管理、预约挂号、电子处方、智能诊断、药房进销存、财务统计于一体,支持模板调用、库存预警、多支付方式,实现诊疗全流程数字化管理,提升基层医疗效率。
416 13
|
机器学习/深度学习 人工智能 数据可视化
【人工智能】人工智能可解释性和透明度的详细探讨
人工智能的可解释性和透明度是当前AI领域的重要议题,它们对于AI系统的公正性、可靠性、用户信任以及合规性等方面都具有深远的影响。以下是对人工智能可解释性和透明度的详细探讨
1640 1
|
监控 负载均衡 网络协议
利用hping3进行传输层拒绝服务攻击实验
本文介绍如何使用Kali Linux和hping3工具对Metasploitable Linux靶机执行传输层拒绝服务(DoS)攻击实验。实验环境包括攻击机(Kali Linux,IP:192.168.1.30)和靶机(Metasploitable2 Linux,IP:192.168.1.45)。通过SYN Flood和UDP Flood攻击,展示了DoS攻击的工作原理及其对目标系统的影响。文章还提供了防御建议,如启用防火墙规则、配置负载均衡和使用入侵检测系统等,帮助网络安全工程师更好地应对此类攻击。
1996 5
|
Linux vr&ar 开发者
Linux 命令 `ar` 详解:静态库的管理利器
`ar` 命令是 Linux 管理静态库的工具,常用于创建、修改和提取 `.a` 文件。基本语法为 `ar [选项] 目标文件 [成员...]`。常用选项包括:`rcs` 创建(更新)静态库,`t` 列出成员,`x` 提取成员,`d` 删除成员。注意文件顺序、创建索引、备份和跨平台兼容性。学习和掌握 `ar` 命令能提升系统开发效率。
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
|
Linux C++
Linux进程状态——top,ps中看到进程状态D,S的含义
在top和ps命令中有一列显示进程状态,分别有如下值 值 含义 备注 S 进程处于interruptable sleep状态 na D 进程处于Uninterruptable sleep状态 na R 进程处于运行状态 na Z 进程处于僵尸状态 na T Stop模式,进程要么处于被调试状态 na interruptable sleep vs uninterruptable sleep interruptable sleep 进程等待某个资源处于sleep状态,此时可以通过发送信号将这个进程唤醒。
4619 0
|
Docker 容器
阿里云镜像加速器配置
阿里云镜像加速器配置
1015 0
|
弹性计算 网络协议 网络安全
阿里云服务器80端口开通教程(在安全组中配置规则)
阿里云服务器网站HTTP需要80端口,怎么开放80端口?阿里云服务器开启80端口教程来了
9366 1
阿里云服务器80端口开通教程(在安全组中配置规则)