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

过滤器和拦截器区别以及执行顺序图_压缩空气过滤器安装顺序过滤器和拦截器区别觉得这个总结的很好,所以用来借鉴借鉴摘抄于网络,侵删过滤器和拦截器执行顺序在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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java发送邮件换行问题

    Java发送邮件换行问题利用用java编写的发送邮件要使用来实现换行,在邮件中内容自动实现换行而不能使用一般的\n,或者\r\n

    2022年5月14日
    39
  • 什么是语义分割_词法分析语法分析语义分析

    什么是语义分割_词法分析语法分析语义分析文章目录引言1混淆矩阵2语义分割PA:像素准确率CPA:类别像素准确率MPA:类别平均像素准确率IoU:交并比MIoU:平均交并比(改进,先求IoU,再求MIoU,这里有误)3综合实例步骤一:输入真实、预测图片步骤二:求出混淆矩阵步骤三:评价指标计算PACPAMPAIoUMIoU4测试代码参考引言语义分割是像素级别的分类,其常用评价指标:像素准确率(PixelAccuracy,PA…

    2022年8月21日
    3
  • 在java中重载和重写的区别_简述java线程生命周期

    在java中重载和重写的区别_简述java线程生命周期重写(Overriding) 重载(Overloading) 类的数量 父子类、接口与实现类 本类 方法名称 一致 一致 参数列表 一定不能修改 必须修…

    2022年9月4日
    2
  • pycharm激活码永久破解(JetBrains全家桶)

    (pycharm激活码永久破解)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    289
  • 第一高分大省——河北,新高考正式执行,权威政策解读来了!其他省很可能参照河北模式!

    第一高分大省——河北,新高考正式执行,权威政策解读来了!其他省很可能参照河北模式!第一高分大省——河北,新高考正式执行,权威政策解读来了!其他省很可能参照河北模式!1、语数外和6选3组合方案提出,2021年开始,考生总成绩由统一高考的语文、数学、外语3个科目成绩和高中学业水平考试3个科目成绩组成。 2、语数外分值不变 统一高考的语文、数学、外语科目分值不变。 3、不分文理科 4、外语可以考两次 外语科目提供两次考试机会。 …

    2022年7月16日
    27
  • gson string转json_string转换成jsonobject

    gson string转json_string转换成jsonobjectCan’tseemtofigurethisout.似乎无法弄清楚。I’mattemptingJSONtreemanipulationinGSON,butIhavea

    2022年8月23日
    4

发表回复

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

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