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

异常处理

相关推荐
XiYang-DING3 小时前
【Java EE】CAS(Compare And Swap)
java·开发语言·java-ee
白露与泡影3 小时前
Spring Boot 完整流程
java·spring boot·后端
空中海3 小时前
第二章:Maven进阶篇 — 依赖管理与构建生命周期
java·maven
xun-ming4 小时前
AI时代Java程序员自救手册
java·开发语言·人工智能
DavidSoCool4 小时前
GB28181 PTZCmd 完整指令对照表(8 位 16 进制)+ 详细注释 + 使用说明
java·sip·gb28181
张健11564096484 小时前
C++访问控制与友元
java·开发语言·c++
Sam_Deep_Thinking4 小时前
中小团队需要一个资源微服务
java·微服务·架构
Thanks_ks4 小时前
透过 Copy-On-Write 机制:理解并发编程中的性能与一致性权衡
java·多线程·并发编程·底层原理·写时复制·copyonwrite·性能优
Bechamz4 小时前
大数据开发学习Day23
大数据·学习·ajax
一只幸运猫.4 小时前
JAVA后端面试题
java·开发语言