文章目录

  • 前言
  • 过滤器Filter
    • 简介
    • 使用方法
    • 代码实现
    • 测试
  • 拦截器Interceptor
    • 简介
    • 使用方法
    • 代码实现
    • 测试
  • ControllerAdvice
    • 简介
    • 使用方法
    • 代码实现
    • 测试
  • AOP
    • 简介
    • 使用方法
    • 代码实现
    • 测试
  • 四者的执行顺序
    • 结论
  • 总结

前言

本文适合有一定基础的同学,在已有的认识基础上对这四块的知识做一个总体的对比。

本文基于SpringBoot项目进行讲解,所有的代码都是在已经搭好SpringBoot的基础上进行编写的,SpringBoot版本为2.7.3。

该项目所有的代码都已经上传到我的GitHub仓库:https://github.com/stick-i/Filter_Interceptor_AOP_Advcie
也可以到我上传的资源文件中0积分免费下载(但不能保证代码为最新版):https://download.csdn.net/download/little_stick_i/86509908

过滤器Filter

简介

  • 来自J2EE中的Servlet技术
  • 实现原理:基于servlet的函数回调实现
  • 只可以获取到请求中的request和response,无法获取到响应方法的信息
  • 可以拦截所有请求
  • 支持使用xml配置和注解配置
  • 应用场景:权限认证、敏感词检测、访问日志记录等

使用方法

  1. 实现 Filter 接口,重写 doFilter 方法;

  2. 放行请求时调用chain.doFilter()方法;

  3. 启用该过滤器,有三种方式,一种是比较原始的xml配置,这我就不写了,需要的同学请查看其它人的文章。

    第二种是使用注解 @WebFilter() ,并在启动类上添加@ServletComponentScan注解使用。

    第三种是直接使用@Component注解,这样的话@WebFilter配置的路径会失效,因为@WebFilter根本就没生效,不信自己去试试

    过滤器、拦截器、AOP、ControllerAdvcie的使用对比、执行顺序及代码教程相关推荐

    1. SpringBoot的过滤器拦截器AOP和异常处理器

      目录 前言 过滤器 创建过滤器 拦截器 创建拦截器 配置拦截器 AOP 创建AOP 异常处理器 创建异常处理器 测试请求的执行过程 创建接口 发送请求 前言 过滤器.拦截器.AOP.异常处理器是搭建系 ...

    2. 拦截器HandlerInterceptor、ResponseBodyAdvice和@ExceptionHandler执行顺序

      HandlerInterceptor接口结构: ResponseBodyAdvice接口结构 执行顺序: 1.HandlerInterceptor.preHandle() 2. 业务方法 3.@Exc ...

    3. Spring关于AOP中关于advice的执行顺序

      AOP的核心概念 要完全理解Spring AOP首先要理解AOP的核心概念和术语,这些术语并不是Spring指定的,而且很不幸,这些术语并不能直观理解,但是,如果Spring使用自己的术语,那将更加令 ...

    4. 【Spring Boot入门】AOP基础及Advice的执行顺序

      本文主要分为两个部分,首先介绍AOP的基础,包括为什么要使用AOP以及AOP中的基本概念,然后讲解AOP中各类Advice的执行顺序并给出简单示例. 一.AOP基础 1.为什么要使用AOP AOP(A ...

    5. 过滤器 拦截器 区别

      转 http://www.cnblogs.com/wangyuyu/archive/2013/07/02/3167354.html 1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过 ...

    6. java web 过滤器 拦截器 监听器_Java中的拦截器和过滤器,可不是同一个东西

      过滤器(Filter) 过滤器就如上面的水质过滤器一样,把管道中的水进行一遍过滤再使用.过滤器基于filter接口中的doFilter回调函数,主要的用途是设置字符集.控制权限.控制转向.做一些业务逻 ...

    7. Spring Boot 系列:过滤器+拦截器+监听器

      原 Swagger 文章合并到 Spring Boot 系列:配置 Swagger2 一.过滤器 - Filter 过滤器是处于客户端和服务器资源文件之间的一道过滤网,帮助我们过滤掉一些不符合要求的请 ...

    8. 使用拦截器和redis+token实现防重复提交完整代码

      文章目录 redis配置: 自定义一个注解: 自定义类继承HandlerInterceptor mvc添加刚刚自定义的拦截器使之生效 tokenservice controller redis配置: ...

    9. java mybatis拦截配置_SpringMvc拦截器配置_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...

      SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring MVC 分离了控制器.模型对象.分派器以及处理程序对象 ...

    最新文章

    1. C语言:画一个爱心 送女票
    2. 每周一荐:foobar2000, 奇幻人生, 一个Flash小游戏
    3. PYTHON之DEF
    4. Minimax Problem(二分+二进制状态压缩)
    5. [TimLinux] Python 迭代器(iterator)和生成器(generator)
    6. AsyncToken模式替换通用的Listener模式
    7. Spark Streaming之Kafka的Receiver和Direct方式
    8. iphone录屏没内部声音_6个iPhone隐藏功能,让你的手机好用到飞起
    9. Python+pandas+matplotlib控制不同曲线的属性
    10. underscore.js依赖库函数分析一(遍历)
    11. QTcpSocket
    12. linux下国产达梦数据库的命令行安装
    13. Paypal移动快速支付流程
    14. python中的IO操作
    15. mybatis中大于小于号转义字符
    16. python_习题练习_5_小游戏《唐僧大战白骨精》
    17. A ConvNet for the 2020s
    18. 如何把网页传到云服务器,将网页传到云服务器
    19. 困在赛博世界里的“仿生机器人”
    20. backtrack 4 安装vm-tool

    热门文章

    1. 各省、地级市-2020春运期间高德地图人口迁徙数据-excel、shp格式
    2. prometheus使用 (四) 瞬时向量与区间向量
    3. 将两台交换机虚拟化为一台设备的操作过程(VSU)锐捷设备
    4. python画心电图_基于MicroPython:TPYBoard心率监测器
    5. 六、Web服务体系结构
    6. 金山毒霸服务器2008系统,金山毒霸可以在服务器系统上安装吗
    7. 信号塔机房有服务器吗,通信铁塔及机房知识
    8. 装机大师无法发现linux硬盘,华硕电脑进PE系统找不到硬盘的解决办法
    9. 用计算机制作微课教学教案,微课应用于计算机教学
    10. 溯源系统溯源码的生成方法