首页 > 其他分享 >32. 过滤器和拦截器有什么区别

32. 过滤器和拦截器有什么区别

时间:2024-12-25 16:22:44浏览次数:4  
标签:拦截器 请求 实现 32 进入 过滤器 servlet

1. 实现原理不同

  • 过滤器和拦截器底层实现不同。过滤器是基于函数回调的,一般自定义的过滤器中都会实现一个doFilter()方法,这个方法有一个FilterChain参数,而实际上它是一个回调接口。
  • 拦截器是基于Java的反射机制(动态代理)实现的。

2. 触发时机不同

  • 过滤器Filter是在请求进入容器后,但在进入servlet之前进行预处理,请求结束是在servlet处理完以后。
  • 拦截器 Interceptor 是在请求进入servlet后,在进入Controller之前进行预处理的,Controller 中渲染了对应的视图之后请求结束。

3. 使用的场景不同
因为拦截器更接近业务系统,所以拦截器主要用来实现项目中的业务判断的,比如:日志记录、权限判断等业务。
而过滤器通常是用来实现通用功能过滤的,比如:敏感词过滤、响应数据压缩等功能。

4. 拦截的请求范围不同
请求的执行顺序是:请求进入容器 -> 进入过滤器 -> 进入 Servlet -> 进入拦截器 -> 执行控制器。
可以看到过滤器和拦截器的执行时机也是不同的,过滤器会先执行,然后才会执行拦截器,最后才会进入真正的要调用的方法。

标签:拦截器,请求,实现,32,进入,过滤器,servlet
From: https://www.cnblogs.com/tim-zuo/p/18630739

相关文章

  • STM32单片机定时器定时方法计算
    定时器是STM32单片机非常常见的外设,使用定时器来设置定时时间需要配置预分频系数(Prescaler)和自动重装载值(CounterPeriod)。 假设设置一个500ms的定时器,时钟频率72MHz,把预分频系数设置为7200(即写入预分频寄存器的值为7200-1),72MHz/7200=10KHz,这样就得到计数器的计数频......
  • 过滤器、监听器和拦截器
    1.过滤器、监听器和拦截器过滤器:在servlet中,过滤器也就是Filter,它主要用于过滤字符编码,做一些统一的业务等等。是使用javax.servlet.Filter接口进行实现的。在代码安全中,他常被用于防止XSS,防SQL注入,防任意文件上传等。在配置了Filter之后,它可以统一过滤危险字符,省时省力。......
  • STM32外部SPI-FLASH字库实践
    背景使用STM32使用液晶屏时,对于一些点阵屏,预先需定义好相应的字模,对于12864的话,使用的自身的FLASH空间就可以存放下所需的字模,几十KB的空间。如果使用大的点阵屏,或者点阵密度较大时,且使用到的字体较多,如果只是用STM32自身的FLASH,对于一些小空间的芯片就不太够有空间去存放字模了......
  • 【Python项目】用pywin32在聊天窗口发送QQ好友/群消息
    源码中涉及到的函数用法:win32clipboard.SetClipboardData(format,hMem):它需要一个格式化的数据对象和一个数据块。CF_DIB——DIB图片,它包含一个BITMAPINFO结构,然后是位图位。CF_DIF——软件领域的数据交换格式。CF_PALETTE——调色板。每当应用程序放置数据在剪贴板......
  • ABC232G
    大致题意你有一个\(n\)个点的有向完全图。每个点有两个属性\(a_i\)和\(b_i\)。\(u\tov\)的边的权值是\((a_u+b_v)\bmodm\)。给你\(n\),\(m\)和\(\{a_i\}\)以及\(\{b_i\}\),求\(1\)到\(n\)的最短路。$2\\leq\N\\leq\2\\times\10^5$$2\\leq......
  • stm32+I2C +W24C02
     首先I2C支持同步串行半双工通信,允许多个主从设备间低速通信。传输速率的话,标准模式下是100kbit/s,快速模式为400kbit/s,高速模式3.4Mbit/s(大部分设备不支持)I2C通讯时管脚应该被配置为复用开漏模式,因为它支持多个主从设备,推挽的话会造成设备间短接。使用开漏的话设备空闲统......
  • 【openGauss】Java层传参到openGauss使用拼接字符串拆分为数组方案解决in中用foreach
    【openGauss】Java层传参到openGauss使用拼接字符串拆分为数组方案解决in中用foreach拼接的32767限制一、sql格式二、使用说明三、测试四、SQL解析五、其他说明一、sql格式比如delete:DELETEFROM表名WHERE主键ID字段=any(string_to_array(#{fieldList,jdb......
  • 阅读报告 Science385,1318-1321(2024).
    论文:WenxuanJia etal.,Squeezingthequantumnoiseofagravitational-wavedetectorbelowthestandardquantumlimit.Science385,1318-1321(2024).DOI:10.1126/science.ado8069引力波是时空的涟漪,让空间发生微弱的扭曲,它的强度极弱.在测量引力波的时候,任何一......
  • 拦截器
    请求到达controller前经过的拦截。如何定义拦截器1.创建一个类并实现HandlerInterceptor接口publicclassMyInterceptorimplementsHandlerInterceptor{//prefixpublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objectha......
  • STM32高级:CAN通讯案例1:环回静默模式测试 (寄存器代码)(详解)
    目录需求描述思路:初始化函数GPIO引脚模块1    RCC2    AFIO3        GPIOCAN模块1        MCR和MSR2        MCR发送报文1    TSR2        数据帧的书写(邮箱寄存器)1        TIxR(TIR)3   ......