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 的常用属性