[2025.2.26 JavaWeb学习]登录校验
流程图

会话技术
-
指浏览器与服务器的一次连接,直到某一方断开,某个浏览器的一次会话可以包含多次请求和响应
-
会话跟踪:一种维护浏览器状态的方法,HTTP协议不记录状态,无法实现状态共享,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据,方案
- 客户端会话跟踪技术:Cookie
- 服务端会话跟踪技术:Session
- 令牌技术
Cookie

- 每一次请求后设置一个Cookie,记录信息,服务端响应数据会自动将Cookie响应给浏览器,并自动存储,在后续请求时,浏览器自动将本地存储的Cookie发送到服务端进行会话跟踪
- 优点:HTTP协议支持的技术
- 缺点:
- 移动端无法使用
- 不安全,用户可以禁用
- Cookie不能跨域(域名、端口、协议)
Session

- 优点:session数据存储在服务端,使用Cookie进行其id传输,安全
- 缺点:
- 服务器集群下无法直接使用
- Cookie的缺点(基于Cookie实现)
令牌技术
- 优点:
- 支持PC和移动端
- 解决集群环境下的认证问题
- 减轻服务器端存储压力
- 缺点:需要自己实现
JWT令牌(JSON Web Token)

- 部门查询中携带的JWT令牌:

Filter过滤器
- 三大组件(Servlet、Filter、Listener)之一
- 可以把对资源的请求拦截下来,从而实现一些特殊的功能
- 可以进行登录检验、统一编码处理、敏感字符处理等
- 有放行前逻辑、放行、放行后逻辑三个步骤
- 过滤器链:一个web应用可以配置多个过滤器,顺序按照类名的字典序
- 登录检验流程:

- 因为ServletRequest中只提供了获取基本信息的方法,没有获取用户请求类型的方法。所以就必须要将ServletRequest转成HttpServletRequest。因为HttpServletRequest与Http协议相关
Interceptor拦截器
- 是一种动态拦截方法调用的机制,类似过滤器
- 作用:拦截请求,在指定方法调用前后,根据业务需要执行预先设定的代码
- 执行流程:

Filter和Interceptor的区别
- 接口规范不同:过滤器需要实现Filter接口,而拦截器需要实现HandlerInterceptor接口
- 拦截范围不同:过滤器会拦截所有的资源,而Interceptor只会拦截Spring环境中的资源(只能拦截 Spring MVC 处理的请求)

浙公网安备 33010602011771号