学习笔记:黑马程序员JavaWeb开发教程(2025.4.9)

12.16 异常处理

定义一个类,加上注解@RestControllerAdvice,即定义了一个全局异常处理器

再方法上加上注解@ExceptionHandler,通过注解当中的value属性来指定捕获那个类型的异常

完成Filter、interceptor、异常处理代码实操

Filter

Filter里面的放行就是这样写的,没有解释底层

将Request和Rsponse强转为HTTP协议的请求对象,是为了用其中的方法,像获取url,获取请求头中的令牌可以分别直接使用Request.getRequestURL(),和Request.getHeader(token)方法获取即可

第二步里面的return要写到if里面,要不然直接后面的语句都没办法执行

判断令牌是否存在,是判断令牌是否为空,可以使用StringUtils.hasLength()方法

使用阿里巴巴的fastjson中的.toJSONString()方法需要把fastjson库导入xml文件中

第四步,转成json时,用的是JSON.toJSONString()

response.setContentType(MIME)设置发送到客户端的响应的内容类型,在getWrite()之前可以设置,之后不行,response.getWriter()获取输出流,使用writer(json)将字符串响应给浏览器

解析token就是用的JwtUtils.parseJWT这个方法

开始过滤器没有生效,是因为Spring Boot 应用中@WebFilter默认是不被扫描的,需要在项目启动类上添加 @ServletComponentScan 注解, 表示对 Servlet 组件扫描。

Interceptor

在令牌不存在,返回错误信息时,转为JSON调用给的是阿里巴巴的toJSONString,后面设置返回类型,返回信息时,都是用的response的方法

异常处理

相关推荐
xbgRS1 小时前
springboot的自动装配
java·spring boot
青山是哪个青山7 小时前
LangChain 学习笔记(四):Message 与提示词模板
笔记·学习·langchain
hsjiasb8 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
崇子嵘8 小时前
基于zynqMP15eg的linux驱动学习
学习
嘻哈∠※8 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
白狐_7989 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander25810 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
知识分享小能手10 小时前
线性代数学习教程,从入门到精通,向量组的线性相关性 — 完整知识点梳理(7)
学习·线性代数·机器学习
码匠许师傅10 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
Shell运维手记10 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github