当前位置: 首页 > news >正文

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

异常处理

相关文章:

  • 第14天-Matplotlib实现数据可视化
  • 计算机视觉与深度学习 | Python实现CEEMDAN-ABC-VMD-DBO-CNN-LSTM时间序列预测(完整源码和数据)
  • 考取AZ-305 认证的心得
  • docker中使用openresty
  • 企业级数据加密权威方案:从 AES-CBC 到 AES-GCM 的升级实践
  • HJ23 删除字符串中出现次数最少的字符【牛客网】
  • 【项目】SpringBoot +MybatisPlus集成多数据源
  • Day123 | 灵神 | 二叉树 | 找树左下角的值
  • 【python】纤维宽度分布分析与可视化
  • Node.js Express 项目现代化打包部署全指南
  • LAN(局域网)和WAN(广域网)
  • osgEarth中视角由跟随模式切换到漫游模式后没有鼠标拖拽功能问题分析及解决方法
  • 【VSCode】在远程服务器Linux 系统 实现 Anaconda 安装与下载
  • jenkins使用Send build artifacts over SSH发布jar包目录配置
  • AUTOSAR 运行时环境 (RTE)
  • CMake 跨平台构建系统详解
  • C++(26): 标准库 <iterator>
  • 基于python的机器学习(八)—— 评估算法(一)
  • 策略的组合与叠加多策略联合交易
  • 前端面经-nginx/docker
  • 继乌龙茶之后白茶再破局,中国团队主导制定国际标准获进展
  • 是否担心关税战等外部因素冲击中国经济?外交部:有能力、有条件、有底气
  • “世界茶树原产地”打通全产业链,茶文旅融合助力西双版纳高质量发展
  • 为俄乌一日三通电话,这里成“关键战场”?
  • 存款利率、LPR同日下调,机构称对银行的影响偏正面
  • 外交部:中方支持俄乌直接对话谈判,支持政治解决危机