网站首页 > 编程文章 正文
一、Filter过滤器及其生命周期介绍
1、Filter过滤器
过滤器是Servlet规范中的三大组件之一。另外两个组件是监听器和Servlet组件。
Filter过滤器是位于javax.servlet包下的一个接口。接口中只有三个方法,分别是init()、doFilter()和destroy()方法。
2、过滤器作用
过滤器的作用就是在请求到达目标资源之前,可以对请求进行拦截过滤的操作,或者在响应到达客户端之前,对响应数据进行拦截过滤的操作。
3、创建一个过滤器Filter
<1>创建FirstFilter类并实现Filter接口
<2>在web.xml配置文件中注册filter
Filter过滤器和Servlet配置是类似的。servlet需要配置<servlet>和<servlet-mapping>,而filter需要配置<filter>和<filter-mapping>。
<3>启动项目,任意访问一个请求地址查看控制台输出
这里请求被过滤器给拦截到了。
4、Filter过滤器生命周期
Filter和Servlet一样,都具有自己的生命周期,并且两个组件的生命周期是类似的。
Filter生命周期也分为四个阶段:实例化、初始化、doFilter()以及销毁。
<1>实例化
实例化是指通过new关键字创建Filter的实例对象,执行其构造方法。
Filter过滤器是单例模式的,即:在整个web工程中只会创建当前一个Filter实例对象。
<2>初始化init()
实例化完成之后,就会自动调用init()方法,进行初始化过滤器参数等操作。
<3>doFilter()
doFilter()方法是拦截请求的,可以在该方法中对请求或者响应进行过滤等操作,然后放行请求或响应。
<4>销毁destroy()
当过滤器被卸载之前,就会调用destroy()方法进行释放一些资源。
注意:Tomcat服务器启动时候,就会马上执行Filter过滤器的实例化和初始化操作。
综上,Filter过滤器及其生命周期介绍完了。
猜你喜欢
- 2025-05-09 Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 2025-05-09 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 2025-05-09 MapStruct架构设计(mapstruct @mapping)
- 2025-05-09 分布式微服务架构组件(分布式微服务架构设计)
- 2025-05-09 Java Swing组件下的JButton实例(java swing 组件)
- 2025-05-09 java基础都在这了,小主们拿去吧(java基础是指什么)
- 2025-05-09 AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 2025-05-09 【Spring Boot】WebSocket 的 6 种集成方式
- 2025-05-09 Java 中五种最常见加密算法:原理、应用与代码实现
- 2025-05-09 用注解进行参数校验,spring validation介绍、使用、实现原理分析
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)