对过滤器Filter的理解

本文介绍了过滤器Filter的概念,它是客户端与服务器资源之间的过滤网,用于管理Web服务器资源,如JSP、Servlet等,可以实现登录验证、权限控制等功能。过滤器的生命周期由Servlet容器管理,创建时调用init方法,拦截请求时执行doFilter方法,服务器关闭时销毁。文章还详细讲述了过滤器的使用步骤和工作流程,并提到了@WebFilter注解在配置中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.过滤器概念
●客户端与服务器资源文件之间的-道过滤网;
●管理Web服务器的所有资源,例如对JSP、Servlet、 静态图片文件或静态HTML文件等进行拦
截;
●可以过滤几乎所有的请求,完成一些特殊的功能;
●Filter依赖于Servlet容器, 属于Servlet规范的一部分;
●Filter的执行由Servlet容器回调完成;
●Filter的生命周期由Servlet容器管理。

2.过滤器使用场景
完成通用的操作:登陆验证、URL 级别的权限访问控制、压缩响应信息、统-编码处理、过滤
敏感字符等等。
过滤器实现步骤
●定义一个类,实现javax.servlet.Filter接口;
●复写方法,其是doFilter方法,必须实现;
●配置过滤器信息。
●web.xml
●@WebFilter注解
●@Configuration配置类

3.Filter 的工作流程图:
在这里插入图片描述

4.Filter的使用

开发Filter

(1):自定义一个类(XxxFilter,Xxx表示功能名),实现于javax.servlet.Filter接口.  

(2):在web.xml中做配置,告诉Tomcat来帮我管理这一个类(负责了该类的生命周期).


 
<filter>          
 
<filter-name>XxxFilter</filter-name>         
 
  <filter-class>XxxFilter类的全限定名</filter-class>
 
</filter>     
 
 <filter-mapping>          
 
<filter-name>XxxFilter</filter-name>          
 
<!--表示:当前Filter只对哪些资源做过滤/拦截操作,只对hello.jsp做拦截-->          
 
<url-pattern>/hello.jsp</url-pattern>      
 
</filter-mapping>

​

 

Filter的生命周期(原文链接:https://blog.youkuaiyun.com/hanhanhanfei/article/details/124716990)

Filter的创建和销毁由web服务器控制。

服务器启动的时候,web服务器创建Filter的实例对象,并调用其init方法,完成对象的初始化功能。filter对象只会创建一次,init方法也只会执行一次。拦截到请求时,执行doFilter方法。可以执行多次。服务器关闭时,web服务器销毁Filter的实例对象。

生命周期的方法:

(1):void init(FilterConfig config): 初始化方法 
(2):void doFilter(ServletRequest request, ServletResponse response, FilterChain chain):执行过滤的方法(每一次请求都会执行过滤) 
(3):void destroy():销毁方法 执行的流程:   在启动Tomcat服务器的时候,就会执行构造器和init方法.     构造器--->init方法   -----> (  doFilter方法  )N次------->destroy方法

@WebFilter 的常用属性 

 


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值