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

异常处理

相关推荐
孞㐑¥1 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
Fireworkitte3 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
weixin-a153003083163 小时前
【playwright篇】教程(十七)[html元素知识]
java·前端·html
DCTANT4 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
sealaugh324 小时前
aws(学习笔记第四十八课) appsync-graphql-dynamodb
笔记·学习·aws
Touper.4 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端
黄雪超4 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice4 小时前
对象的finalization机制Test
java·开发语言·jvm
水木兰亭4 小时前
数据结构之——树及树的存储
数据结构·c++·学习·算法
鱼摆摆拜拜4 小时前
第 3 章:神经网络如何学习
人工智能·神经网络·学习