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

过滤器和拦截器区别以及执行顺序图_压缩空气过滤器安装顺序过滤器和拦截器区别觉得这个总结的很好,所以用来借鉴借鉴摘抄于网络,侵删过滤器和拦截器执行顺序在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)
上一篇 2022年8月23日 上午9:46
下一篇 2022年8月23日 上午9:46


相关推荐

  • arm cortex-a57 cpu_处理器a73和a53

    arm cortex-a57 cpu_处理器a73和a53在如今这个电子产品泛滥的年代,仅仅靠品牌或是外观已经不足以辨别产品的优劣,其内置的处理器自然也就成为了分辨产品是否高端的标准之一。那么我们今天就不妨好好了解一下近几年来电子产品中较为主流的RAM处理器。  在这之前让我们先简单认识一下处理器的架构。所谓处理器架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU指令集分类主要分有…

    2022年8月31日
    19
  • MATLAB循环_matlab如何循环计算

    MATLAB循环_matlab如何循环计算MATLAB循环1.   while循环   在给定条件为真时,重复一个语句或一组语句。它在执行循环体之前测试状态。语法MATLAB中while循环的语法是:while&lt;expression&gt;  &lt;statements&gt;end只要表达式(expression)为true,while循环将重复执行程序语句(statements)。当结果为非空并且…

    2022年10月7日
    3
  • MVC3和MVC4中CRUD操作

    MVC3和MVC4中CRUD操作

    2022年1月23日
    49
  • 揭秘哪吒AI绘画:入门到精通的AIGC课程全解析

    揭秘哪吒AI绘画:入门到精通的AIGC课程全解析

    2026年3月14日
    3
  • CAN 接口测试[通俗易懂]

    CAN 接口测试[通俗易懂]CAN测试收发程序can发送测试#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<net/if.h>#include<sys/ioctl.h>#include<sys/socket…

    2022年6月29日
    29
  • python怎么群发邮件_python小白之实现群发邮件

    python怎么群发邮件_python小白之实现群发邮件2020 年 10 月 2 日前两天看到 kk 的公众号推送有一句话特别醒目努力是最不值得拿来夸口的东西 因为这是最基本的以前考研的时候所有驱动力都是 kk 的推送后来有了内在驱动力很少点开 kk 的推送了最好的摆渡人的结局今天发生了一件超级有趣的事情人生中第一次遇见跟我同名的人 在某大的群里哪怕姓不一样 性别也不一样 真的很少见我说好像和您同名他说 我的荣幸我回 荣幸之至然后有了对方的添加信息 我是 CSEP

    2026年3月19日
    2

发表回复

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

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