学习笔记:黑马程序员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的方法

异常处理

相关推荐
星夜夏空994 小时前
C++学习(2) —— 类与对象基础
开发语言·c++·学习
livemetee5 小时前
【关于Spring声明式事务】
java·后端·spring
倒流时光三十年5 小时前
Java 内存模型(JMM)通俗解释
java·开发语言
-To be number.wan5 小时前
数据库系统 | 数据库安全与完整性
数据库·学习
码兄科技5 小时前
Java AI智能体开发实战:从零构建企业级智能应用指南
java·开发语言·人工智能
2401_859506245 小时前
AIGC赋能大漆摆件设计:从痛点分析到技术架构与实战验证
java·大数据·人工智能
剑挑星河月5 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
czysoft5 小时前
se被限速
科技·学习·it·技术·魔法·先进·领先
子不语1806 小时前
从0开始学习S7-1200+ET200SP(3)——两台S7-1200通过TCP连接
网络协议·学习·tcp/ip
Lhappy嘻嘻6 小时前
Java 并发编程(六)|并发进阶高频:CAS、锁升级
java·开发语言