当前位置: 首页 > news >正文

黑马JavaWeb【复习到哪更新到哪】

登录认证(复习Javaweb的登录校验)

登录功能

思路就是loginController->service层->mapper层,从数据库中查找username和password是否和前端用户提交的表单内容一致,一致就登录成功,否则就返回登录失败的信息。

登录校验

以下是基础部分:
为什么?
这一步是因为上一步登录功能中有bug,如果输入系统内部的某个网址,可以直接访问,而不是跳转到登录页面。
问题:
http每次请求都是独立的,所以当前端是depts或者emps请求时,后端服务器不知道用户是否登录了,所以需要一个登陆标记和统一拦截,图下图,登录后存一下登录标记,然后请求其他页面时,统一拦截模块就取出登录标记,看是否有,没有的话就跳转到登录页面。
解决方案:

  • 统一拦截技术:过滤器Filter和 拦截器Interceptor
  • 登录标记:会话技术

在这里插入图片描述

一、会话技术

同一个浏览器是一次会话,一次会话里可以有多个请求,比如登录进去后访问别的页面。
在这里插入图片描述

1.使用cookie会话跟踪:

第一次浏览器向服务器发出请求的时候设置一个cookie,然后服务器将用户数据存到里面,响应的时候返回cookie给浏览器,浏览器将cookie值存储到本地,之后每次请求都将本地的cookie值发给服务器,然后服务器就检查cookie的值是否存在,存在就说明登录过了,不存在就没登陆过。
cookie无法跨域(端口号,IP/域名,协议一个不一样就是跨域)

2. session会话跟踪:

session是基于cookie进行的,浏览器请求时,服务器生成一个session(有唯一的JsessionId),然后将JsessionId放到cookie中返回给浏览器,下一次请求,服务器查询JsessionID来看是否登录过。

cookie的例子:
在这里插入图片描述
session的例子
在这里插入图片描述

3.令牌技术(企业使用)

用户登陆后生成JWT令牌,下发给客户端,客户端进行存储(存LocalStorge中),每次请求时将令牌携带到客户端,服务器收到请求后进行统一拦截,并获取令牌对其进行校验,有效则访问对应的业务
JWT
就是对Json进行安全的封装
在这里插入图片描述
生成JWT令牌(Java)
在这里插入图片描述
校验JWT令牌(Java)
在这里插入图片描述

三种技术对比

在这里插入图片描述

在登录中增加校验功能:

在这里插入图片描述

将令牌会存储到LocalStorge中了(前端做)
在这里插入图片描述

二、统一拦截技术

在这里插入图片描述
例子:
在这里插入图片描述
在这里插入图片描述
Filter链
调用chain.doFilter
优先级按照类名的字母排序执行
在这里插入图片描述在这里插入图片描述

登录校验加过滤器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
comcat不能识别spring的controller但是可以识别servlet的程序,spring提供了DispatcherServlet
在这里插入图片描述
在这里插入图片描述
Interceptor是spring提供的,拦截范围更小,Filter拦截范围更大

http://www.dtcms.com/a/302994.html

相关文章:

  • Coze Studio概览(二)
  • 【MySQL基础篇】:MySQL常用数据类型的选择逻辑与正确使用
  • Go语言-->变量
  • 【Practical Business English Oral Scene Interpretation】在职日常交流No.1~6
  • MySQL面试题及详细答案 155道(001-020)
  • 重构企业交互逻辑:云蝠智能 Voice Agent 的落地价值与实践指南
  • 设计模式(二十一)行为型:状态模式详解
  • 常见的未授权访问漏洞靶场-练习教程
  • MCP架构:模型上下文协议的范式革命与工程实践
  • 安宝特新闻丨安宝特与Logivations正式建立合作伙伴关系,共筑物流新未来
  • OpenLayers 综合案例-区域掩膜
  • JavaWeb 新手学习路线:从零到全栈开发,系统掌握企业级 Web 开发技能
  • 【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(三)
  • 7.DRF 过滤、排序、分页
  • 微信小程序——早餐小程序
  • 22 BTLO 蓝队靶场 Countdown 解题记录
  • 博士申请 | 荷兰阿姆斯特丹大学 招收计算机视觉(CV)方向 全奖博士生
  • 代码的“防伪水印“:签名证书的隐形安全标记
  • 【python高阶】-1- python工程和线程并发
  • 电路防倒灌设计 --- 双pmos防倒灌
  • 学习dify:一个开源的 LLM 应用开发平台
  • AUTOSAR标准下CAN网络休眠异常诊断机制的创新研究
  • SD卡简介与驱动开发
  • Linux环境-设置Anaconda环境变量 Anaconda路径
  • 力扣1315. 祖父节点值为偶数的节点和
  • TDSQL 技术详解
  • Codeforces Round 1039 (Div. 2)(A-E1)
  • 【前端】React 与 Vue:前端两大框架的全方位对比解析
  • CMakelists.txt 实现多级目录编译
  • redis未授权getshell四种方式