1. 过滤器和拦截器区别


    觉得这个总结的很好,所以用来借鉴借鉴
    摘抄于网络,侵删

  2. 过滤器和拦截器执行顺序
    在SpringBoot中编写测试代码

    • 自定义过滤器
    /*** @Author: xiaoshijiu* @Date: 2019/5/22* @Description: 自定义过滤器*/
    public class MyFilter extends HttpFilter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {System.out.println("Filter----before");  chain.doFilter(request,response);System.out.println("Filter----after");}
    }
    
    • 自定义拦截器
      (有关SpringMVC的拦截器知识原理,可以参照我之前的博客)
      SpringMVC拦截器详解
      SpringMVC拦截器执行顺序原理解释

      /*** @Author: xiaoshijiu* @Date: 2019/5/22* @Description: $value$*/
      public class MyInterception implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception {System.out.println("Interception----before");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {System.out.println("Interception----before2");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object handler, Exception ex) throws Exception {System.out.println("Interception----after");}
      }
      
      • 配置拦截器和过滤器
      /*** @Author xiaoshijiu* @Description 自定义Mvc配置,实现全面接管SpringMvc的配置* @Date 2019/5/13*/
      @Configuration
      public class MyWebMvc implements WebMvcConfigurer {/*** 注册自定义的filter 就相当于在普通web工程中,在web.xml中注册的<filter></filter>*/@Beanpublic FilterRegistrationBean myFilter() {return new FilterRegistrationBean(new MyFilter());}@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 添加自定义的拦截器registry.addInterceptor(new MyInterception()).addPathPatterns("/hello");}
      }
      
      • 编写Controller,测试
      /*** @Author: xiaoshijiu* @Date: 2019/5/22* @Description: 测试Controller*/
      @RestController
      public class Mycontroller {@RequestMapping("hello")public String hello() {System.out.println("hello...来了");return "hello";}
      }
      
      • 打印结果

        这里可以看到拦截器和过滤器的执行顺序,对照着上面他们的区别也是很好理解的
        总结一下,执行顺序

        这里还有一个问题就是发送/hello请求filter被执行了两次,我们可以获取url来判别一下
        自定义过滤器添加代码
             HttpServletRequest servletRequest = (HttpServletRequest) request;System.out.println(servletRequest.getRequestURI());
      

      可以看到SpringBoot项目会发送图标的请求(/favicon.ico)

      最后在补充一下,request获取请求的一些方法的内容

过滤器和拦截器区别以及执行顺序相关推荐

  1. Java过滤器与拦截器区别与执行先后关系

    拦截器和过滤器的区别 过滤器和拦截器的区别: 首先关于文件目录要注意的地方: 把jsp文件放在WEB-INF目录下其实是: 为了保证系统的安全性,web应用的内容结构中,把所有的静态内容放在web-c ...

  2. 聊聊过滤器与拦截器区别

    开发者(KaiFaX) 面向全栈工程师的开发者专注于前端.Java/Python/Go/PHP的技术社区 1. 过滤器(Filter) Servlet 中的过滤器 Filter 实现了 javax.s ...

  3. 关于springmvc拦截器 controll aop执行顺序

    拦截器部分代码 control部分代码 aop部分代码 执行之后的结果 可以看出进入顺序是 1.拦截器preHandle- 2.control-aop- 3.拦截器postHandle- 4.拦截器a ...

  4. 一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了

    周末有个小伙伴加我微信,向我请教了一个问题:老哥,「过滤器 (Filter) 和 拦截器 (Interceptor) 有啥区别啊?」 听到题目我的第一感觉就是:「简单」! 毕竟这两种工具开发中用到的频 ...

  5. SpringMVC中过滤器和拦截器的区别

    文章目录 1.引言 2.共同点 3.区别 3.1.拦截器 3.2.过滤器 4.具体实现 4.1.拦截器 4.1.1.拦截实现方式 4.1.2.拦截实现 4.2.过滤器 4.2.1.过滤器实现方式 4. ...

  6. tomcat 拦截指定url_一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了

    点击" 程序员内点事 "关注,选择" 设置星标 " 坚持学习,好文每日送达! 周末有个小伙伴加我微信,向我请教了一个问题:老哥,「过滤器 (Filter) 和 ...

  7. 过滤器 和 拦截器 6个区别,别再傻傻分不清了

    周末有个小伙伴加我微信,向我请教了一个问题:老哥,过滤器 (Filter) 和 拦截器 (Interceptor) 有啥区别啊? 听到题目我的第一感觉就是:简单! 毕竟这两种工具开发中用到的频率都相当 ...

  8. spring 两次进入拦截器_过滤器和拦截器的 6 个区别,别再傻傻分不清了

    点击上方 肉眼品世界,选择 设为星标 深度价值体系传递 作者 :程序员内点事 来源 :toutiao.com/i6834310440495874563 毕竟这两种工具开发中用到的频率都相当高,应用起来 ...

  9. SpringBoot实现过滤器、拦截器与切片

    作者:七印miss juejin.im/post/5c6901206fb9a049af6dcdcf Q:使用过滤器.拦截器与切片实现每个请求耗时的统计,并比较三者的区别与联系 过滤器Filter 过滤 ...

  10. Spring Boot实战:过滤器、拦截器与切片

    Spring Boot实战:过滤器.拦截器与切片 Q:使用过滤器.拦截器与切片实现每个请求耗时的统计,并比较三者的区别与联系 过滤器Filter 过滤器概念 Filter是J2E中来的,可以看做是Se ...

最新文章

  1. redis删除过期key的算法_面试官别再问我Redis内存满了该怎么办了
  2. python中的文件操作
  3. ApplicationContext容器的设计原理
  4. Qt学习笔记-基于QGraphicsScene的打地鼠游戏
  5. webpack5 模块联邦 single-spa基座微前端 systemjs
  6. cocos2d-x AssetsManager libcurl使用心得
  7. windows远程桌面神器
  8. C# 线程thread
  9. 使用ffmpeg下载m3u8流媒体
  10. csgo删除服务器地图在哪个文件夹,CSGO de_cache地图
  11. 刘宝瑞相声《珍珠翡翠白玉汤》台词
  12. 大数据——舆情监控系统
  13. 为火狐浏览器安装debug(小虫子)调试工具
  14. LibreCAD for windows 编译
  15. 服务器ghost备份后无法进入系统还原,使用Ghost备份/还原系统的速度很慢原因分析与解决...
  16. Bat调用/弹出文件或文件夹选择对话框
  17. 血与荣耀(第一章-激战)
  18. 物理机服务器装系统,物理机安装黑群晖DSM6.1.7系统
  19. 【GCN-RS】SOTA 对比学习:SimpleX: A Simple and Strong Baseline for Collaborative Filtering (CIKM‘21)
  20. 编译部署LANP环境

热门文章

  1. 联合概率分布与边缘分布
  2. CFA要学哪些课程?零基础怎么学CFA呢?
  3. Android OpenCV 身份证训练
  4. matlab 生命游戏
  5. Java实现 LeetCode 289 生命游戏
  6. 补充netty权威指南学习自定义协议实现,与springboot集成
  7. Python函数嵌套
  8. PyQt、PySide、PySide2这三者到底有什么区别?
  9. 希尔密码的加密、解密与破解
  10. 使用rmmod无法卸载驱动,强制卸除的两种方法