登录校验与异常处理(web后端笔记第三期)

发布于:2025-07-15 ⋅ 阅读:(19) ⋅ 点赞:(0)

p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解

会话技术

会话:用户打开浏览器,访问web端的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应

会话跟踪:一种维护浏览器状态的方法,服务器需要多次识别请求是否来自同一服务器,以便在同一次会话的多次请求间共享数据

会话跟踪方案:
客户端会话跟踪技术:Cookie
服务端会话跟踪技术:Session
令牌技术

Cookie的优缺点

在这里插入图片描述

优点:是HTPP协议中支持的技术

缺点:
移动端APP无法使用Cookie
不安全,用户可以自己禁用Cookie
Cookie不能跨域

跨域区分三个维度:协议、IP/域名、端口
只要有一个不同即为跨域

Cookie的优缺点

在这里插入图片描述

优点:存储在服务端,安全

缺点:
服务器集群环境下无法直接使用Session
Cookie的缺点

令牌技术

在这里插入图片描述

优点
支持PC端、移动端
解决集群环境下的认证问题
解决服务器端存储压力

缺点
需要自己实现

JWT令牌

JWT,全称JSON Web Token
其定义了一种简洁的,自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的

其由三部分组成
第一部分:Header(头),记录令牌类型、签名算法等,例如:{"alg":"H5256","type":"JWT"}
第二部分:Payload(有效载荷),携带一些自定义信息、默认信息等,例如:{"id":"1","username":"zhangsan"}
第三部分:Signature(签名),防止Token被篡改、确保安全性。将Header,Payload,指定密钥加入,通过指定签名算法计算而来

最后再使用base64编码成字符串后生成JWT令牌字符串

注意:JWT校验时使用的签名密钥,必须和生成JWT令牌时使用的密钥是配套的
如果JWT令牌解析校验时报错,则说明JWT令牌被篡改或失效了,令牌非法

一般步骤:
令牌生成:登陆成功后,生成JWT令牌,并返回给前端
令牌校验:在请求到达服务端后,对令牌进行统一拦截、校验

细化:
生成令牌:
引入JWT令牌操作工具类
登陆完成后,调用工具类生成JWT令牌,并返回

过滤器(Filter)

概念:Filter过滤器,是javaWeb三大组件(Servlet、Filter、Listener)之一
过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能
过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等

在这里插入图片描述

使用:
1.定义Filter:定义一个类,实现Filter接口,并重写其所有方法
2.配置Filter:Filter类上加上@WebFilter注解,配置拦截资源的路径。引导类上加上@ServletComponentScan开启Servlet组件支持

备注:放行后访问对应资源,资源访问完成后,还会回到Filter中,并执行放行后的逻辑
Filter可以根据需求,配置不同的拦截资源路径

过滤器链

一个web应用中可以配置多个过滤器,这多个过滤器就构成了一个过滤器链

在这里插入图片描述

顺序:注解配置的Filiter,优先级是按照过滤器类名(字符串)的自然排序



在这里插入图片描述

拦截器Interceptor

拦截器是一种动态拦截方法调用的机制,类似于过滤器。Spring框架提供的,用来动态拦截控制器方法的执行

作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码

使用:
1.定义拦截器,实现HandlerInterceptor接口,并重写其所有方法
2.注册拦截器

在这里插入图片描述

过滤器和拦截器的区别

归属不同‌:
‌过滤器(Filter)‌:是Servlet规范的一部分,由Servlet容器(如Tomcat)管理。它不依赖于Spring框架,可以在任何Java Web应用中使用。
‌拦截器(Interceptor)‌:是Spring框架提供的组件,只能在Spring应用中使用。它依赖于Spring的上下文。
.
‌作用域不同‌:
‌过滤器‌:作用于Servlet容器层面,可以拦截所有进入容器的请求(包括静态资源)。
‌拦截器‌:作用于Spring MVC层面,只拦截进入Spring MVC处理器的请求(即Controller的请求)。它不会拦截静态资源,因为静态资源不会被DispatcherServlet处理(除非配置了特殊处理)。

接口规范不同:过滤器需实现Filter接口,而拦截器需要实现HandlerInterceptor

在这里插入图片描述

异常处理

使用全局异常处理器


网站公告

今日签到

点亮在社区的每一天
去签到