过滤器和拦截器有什么区别?

article/2025/10/7 18:56:56

过滤器(Filter)和拦截器(Interceptor)都是基于 AOP(Aspect Oriented Programming,面向切面编程)思想实现的,用来解决项目中某一类问题的两种“工具”,但二者有着明显的差距,接下来我们一起来看。


过滤器 VS 拦截器

过滤器和拦截器的区别主要体现在以下 5 点:

  1. 出身不同;
  2. 触发时机不同;
  3. 实现不同;
  4. 支持的项目类型不同;
  5. 使用的场景不同。

接下来,我们一一来看。


1.出身不同

过滤器来自于 Servlet,而拦截器来自于 Spring 框架,从上面代码中我们也可以看出,过滤器在实现时导入的是 Servlet 相关的包,如下图所示:

而拦截器在实现时,导入的是 Spring 相关的包,如下图所示: 


 

2.触发时机不同

请求的执行顺序是:请求进入容器 > 进入过滤器 > 进入 Servlet > 进入拦截器 > 执行控制器(Controller),如下图所示:

所以过滤器和拦截器的执行时机也是不同的,过滤器会先执行,然后才会执行拦截器,最后才会进入真正的要调用的方法


3.实现不同

过滤器是基于方法回调实现的,我们在上面实现过滤器的时候就会发现,当我们要执行下一个过滤器或下一个流程时,需要调用 FilterChain 对象的 doFilter 方法进行回调执行,如下图所示:

由此可以看出,过滤器的实现是基于方法回调的。 而拦截器是基于动态代理(底层是反射)实现的,它的实现如下图所示:

代理调用的效果如下图所示:

 


 

4.支持的项目类型不同

过滤器是 Servlet 规范中定义的,所以过滤器要依赖 Servlet 容器,它只能用在 Web 项目中;而拦截器是 Spring 中的一个组件,因此拦截器既可以用在 Web 项目中,同时还可以用在 Application 或 Swing 程序中


5.使用的场景不同

因为拦截器更接近业务系统,所以拦截器主要用来实现项目中的业务判断的,比如:登录判断、权限判断、日志记录等业务。 而过滤器通常是用来实现通用功能过滤的,比如:敏感词过滤、字符集编码设置、响应数据压缩等功能。


总结 

过滤器和拦截器都是基于 AOP 思想实现的,用来处理某个统一的功能的,但二者又有 5 点不同:出身不同、触发时机不同、实现不同、支持的项目类型不同以及使用的场景不同。过滤器通常是用来进行全局过滤的,而拦截器是用来实现某项业务拦截的。


http://chatgpt.dhexx.cn/article/PNimR0CI.shtml

相关文章

面试篇-Spring 拦截器和过滤器的区别?

1、实现原理不同 过滤器和拦截器 底层实现方式大不相同,过滤器 是基于函数回调的,拦截器 则是基于Java的反射机制(动态代理)实现的。 2、使用范围不同 我们看到过滤器 实现的是 javax.servlet.Filter 接口,而这个接…

Nessus在线更新教程

前言:在线更新Nessus需要科学上网,没有工具无法更新。 1. 设置更新策略 这里选:更新所有的组件、频率选:每天,就可以 2. 检查是否有更新 3. 打开梯子,将梯子设置为全局模式 4. cmd命令行,进…

弱点扫描工具NESSUS详细教程

NESSUS • 家庭版 • 免费 • 专业版 • 收费、无限的并发连接 • 下载 • http://www.tenable.com/products/nessus/select-your-operating-system • 安装 • dpkg -i • 安装路径:/opt/nessus • 启动服务 • systemctl start nessusd.service • 管理地址 • https://12…

NESSUS使用笔记

Nessus 使用记录 启动nessus服务Nessus更新插件教程win10升级(破解)方法kali 进行升级(初始化完成后之后发现还是无法破解成功,看来kali系统无法使用这种方式进行破解了) 启动nessus服务 进入kali系统,终端输入如下命令&#xff…

Nessus学习

攻击主机: Kali 192.168.11.106 靶机:windows server 2008 r2 192.168.11.134 x64 32位 nessus 实验原理: 利用漏洞扫描器能够自动应用漏洞扫描原理,对目标主机安全漏洞进行检测,附带识别主机漏洞的特征库的功能&…

Nessus安全测试工具使用教程

Nessus安全测试工具使用教程 1.创建 New Scan扫描按钮 2.选择扫描策略 3.创建扫描成功 4.扫描结果

Nessus部署及简单使用

01 Nessus 简介 Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用 Nessus 作为扫描该机构电脑系统的软件。Nessus号称是世界上最流行的漏洞扫描程序,通常包括成千上万的最新的漏洞,各种各样的扫描选项,及易于使用的…

Nessus 使用学习

在看招聘软件的时候注意到有的招聘要求里写着会用 Nessus 这个软件,于是我好奇就下了这个软件。 在使用的过程中发现这也是个非常强大的渗透软件。(总感觉自己有好多东西没学) 1. 安装 在这里我使用的是 Windows 版本。安装可以说是非常简…

Windows版Nessus漏洞扫描器安装与使用

一、介绍、下载 适用版本:Windows 10 64位 Nessus版本:8.13.1 插件:all_2.0_20220618.tar 即2022年6月更新。 资源下载: 链接:https://pan.baidu.com/s/1Q_ywVkNqcu9WH_OJH03-iw 提取码:qsbo 二…

1 | Nessus使用

目录 1 安装1.1 下载地址1.2 点击【Connent via SSL】1.3 选择【Nessus Essentials】1.4 填写注册信息1.5 下载所需要的组件1.6 nessus登陆页面 2 Nessus模块2.1 Host Discovery2.2 Basic Network Scan2.3 Advanced Scan2.4 Advanced Dynamic Scan2.5 Malware Scan2.6 Web Appl…

windows10安装nessus

01 安装nessus 01 安装nessus 02 获取验证码 02 离线安装拓展包 01 找到nessus的快捷方式 02 找到nessus 程序安装目录 03 复制拓展包 04 cmd更新插件 05 刷新nessus 06 登录成功

渗透测试技术_Nessus工具(二) _漏洞扫描工具 Nessus的使用教程

漏洞扫描工具 Nessus的使用教程 1、Nessus使用教程 1.1、Nessus登录 在浏览器中访问:https://{服务器IP}:8834 例如访问:https://10.1.1.191:8834/ 输入你注册的账号密码进行登录,例如:nessus_casb/liaxx,进入主页…

Nessus详细安装教程(Windows版)

1.官网下载安装包:https://www.tenable.com/downloads/nessus?loginAttemptedtrue 2.获取activation code:https://www.tenable.com/products/nessus/nessus-essentials (名字可以随便填,邮箱要填自己可以收到邮件的)…

kali-linux中安装Nessus详细教程

一、下载Nessus Nessus是工业界使用较为广泛的产品。登录官网,下载对应版本的nessus框架安装包 https://www.tenable.com/downloads/nessus?loginAttemptedtrue (建议直接在kali中利用firefox浏览器下载,否则需要从真实机拖进虚拟机中&…

Nessus破解教程

Nessus 最新版破解教程 0x01 Nessus 简介0x02 Nessus 下载0x03 Nessus 安装0x04 更新漏洞库0x05 Nessus 破解0x06 Nessus 使用0x07 注意事项参考文章 0x01 Nessus 简介 Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用 Nessus 作为扫描该…

网络安全:Nessus安裝及使用教程

下载安装激活 1、進入官網 Nessus官網 下載 2、直接拖進kail 3、拷貝此文件至root用戶下(因為安裝Nessus時需要root權限) 4、使用命令dpkg -i Nessus-10.1.1-debian6_amd64.deb 5、啟動Nessus:/bin/systemctl start nessusd.service 6、安裝…

nessus安装教程

简介: Nessus号称世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库Nessus不同于传统的漏洞扫描软件,essus可同时在本机或远端上遥控,进行系统…

Nessus安装使用

Nessus简介 Nessus号称世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具 提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描 软件,essus可同时在本机或远端上遥控,进行系统的…

Nessus的使用教程

1.打开浏览器,输入https://localhost:8834/登录Nessus. 2.输入你设置的账号密码. 3.进入首页,可以使用浏览器自带的网页翻译(如谷歌)。 4.点击侧边栏policies(政策),显示策略界面。 5.点击new …

渗透测试神器Nessus使用教程

简介:Nessus号称是世界上最流行的漏洞扫描程序,该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。 官网:http://w…