过滤器和拦截器区别以及执行顺序图_压缩空气过滤器安装顺序

过滤器和拦截器区别以及执行顺序图_压缩空气过滤器安装顺序过滤器和拦截器区别觉得这个总结的很好,所以用来借鉴借鉴摘抄于网络,侵删过滤器和拦截器执行顺序在SpringBoot中编写测试代码自定义过滤器/***@Author:xiaoshijiu*@Date:2019/5/22*@Description:自定义过滤器*/publicclassMyFilterextendsHttpFilter…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  1. 过滤器和拦截器区别
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    觉得这个总结的很好,所以用来借鉴借鉴
    摘抄于网络,侵删

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

    • 自定义过滤器
    /** * @Author: xiaoshijiu * @Date: 2019/5/22 * @Description: 自定义过滤器 */
    public class MyFilter extends HttpFilter { 
         
        @Override
        public 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 { 
             
          @Override
          public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
                  Object handler) throws Exception { 
             
              System.out.println("Interception----before");
              return true;
          }
      
          @Override
          public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                  ModelAndView modelAndView) throws Exception { 
             
              System.out.println("Interception----before2");
          }
      
          @Override
          public 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> */
          @Bean
          public FilterRegistrationBean myFilter() { 
             
              return new FilterRegistrationBean(new MyFilter());
          }
      
          @Override
          public 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获取请求的一些方法的内容
      在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172388.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C#–winform界面美化[通俗易懂]

    C#–winform界面美化[通俗易懂]1、工控上位机界面总结(参考贴:https://blog.csdn.net/zqrhzyj/article/details/76638948)一般的工控界面分成三部分:(1)、标题菜单部分,即项目名称、界面菜单等(2)、数据显示及按钮等部分,即图形显示区,可以显示工艺流程图,采集到的相关数据信息、控制按钮等。(3)、尾部部分,可以添加公司的相关信息等。…

    2022年5月28日
    38
  • mybatis中调用存储过程_java如何调用存储过程

    mybatis中调用存储过程_java如何调用存储过程项目结构数据表t_user创建Userpackagecom.po;publicclassUser{ privateIntegerid; privateStringname; privateStringsex; privateIntegerage; publicIntegergetId(){ returnid; } publi…

    2022年4月19日
    44
  • git取消文件跟踪

    git取消文件跟踪

    2021年10月20日
    40
  • 久违的黑客手册[通俗易懂]

    久违的黑客手册[通俗易懂]今天终于看到那件书店上摆上了《黑客手册》高兴的不得了抓起一本就跑去付帐排队的时候拿起封面看了看 晕3月份的了 55  。。。1,2月的没的买了 真不爽偏偏老板就不进1,2月的偏偏这里就这一间店有这书卖当我把钱递给老板的时候老板突然问我一句话让我苦笑不得他说看你每次都买这书你是黑客还是红客啊?……我只好开玩笑的说我红黑同杀^_^….

    2022年9月17日
    3
  • PR曲线和ROC曲线概念及其区别

    PR曲线和ROC曲线概念及其区别将测试样本的预测结果按照置信度排序,由高到低,卡个阈值作为正负样本的判定依据,阈值较高时,Precision比较大,阈值较低时,Recall较大。(推荐的话,想Precision较大,用户希望排名靠前的推荐是自己想要的,刑侦的话希望Recall较大,不错过一个犯人)知识点Precision=TP/(TP+FP)Recall=TP/(总的正样本)=TP/(TP+FN)#这个时候的TP…

    2022年6月15日
    36
  • 解决NVIDIA显卡驱动 图形驱动程序安装失败 问题

    解决NVIDIA显卡驱动 图形驱动程序安装失败 问题本教程是在当你尝试一般的教程都无法解决问题的前提下使用,比如使用DDU工具卸载原显卡驱动后重新安装无效,找不到独立显卡的情况。退出火绒等杀毒软件win+R输入services.msc进入服务。将WindowsUpdata启动类型改为自动,并启动服务。win+R输入gpedit.msc进入本地策略编辑器。在计算机配置-模板管理-系统-设备安装-设备安装限制中双击图中第三个将其改为未配置或禁用重新安装显卡驱动即可…

    2022年5月6日
    842

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号