(Filter)过滤器的使用

过滤器(Filter)的简介

过滤器(Filter): 能够完成筛选不需要数据的工具(东西).

类似于生活中的净水器,香烟过滤嘴,滤纸, 收费站等.------->单向的.

Web中:  过滤器其实就是服务端的一个程序(程序的最小单元就是类). 在Web开发中,过滤器其实就是一个Web组件(Servlet/Filter/Listener),其实就是一个特殊的类. 一个类实现javax.servlet.Servlet接口:--->Servlet类. 一个类实现javax.servlet.Filter接口:----->Filter类.

过滤器的作用: 过滤器可以对所有的请求或者响应做拦截操作.

1:以常规的方式调用资源(Servlet/JSP);

2:利用修改过的请求信息调用资源;

3:调用资源之后,但在响应到客户端之前,对响应做出修改;

4:阻止当前资源调用,代之转到其他资源.

(Filter)过滤器的使用_第1张图片

Filter的开发和使用

开发Filter

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

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

使用:@WebFilter("/hello.jsp")      

或者在web.xml里面设置拦截器

          

XxxFilter         

  XxxFilter类的全限定名

     

           

XxxFilter          

          

/hello.jsp      

Filter的生命周期方法
 

(1):void init(FilterConfig config): 初始化方法 

(2):void doFilter(ServletRequest request, ServletResponse response, FilterChain chain):执行过滤的方法(每一次请求都会执行过滤) 

(3):void destroy():销毁方法 执行的流程:   在启动Tomcat服务器的时候,就会执行构造器和init方法.     构造器--->init方法   -----> (  doFilter方法  )N次------->destroy方法

chain:链,链条,多个链的节点组合而成.

FilterChain:过滤器链,多个过滤器按照一定的顺序排列在一起.

 FilterChain.doFilter(req,resp):放行(放行给下一个Filter或资源)

Filter映射细节

1、多个Filter共存的时候,拦截的先后顺序由谁来决定?      

的配置先后顺序来决定.

2、Filter的对哪些资源做过滤.:

被过滤的资源名称    

/hello.jsp:只对/hello.jsp做过滤.      

/*:对所有的资源做过滤操作.      

/system/*:只对以/system/打头的资源做过滤.          

*.do:只对以.do结尾的资源做过滤

3、可以通过元素来给当前Filter配置初始化参数.        

通过FilterConifg对象.getInitParameter(String name)来获取初始化参数.

4、Servlet,Filter,Listener都属于Web组件.      

一般的,先配置监听器,再配置过滤器,最后配置Servlet.

5、中的子元素表示对哪些操作执行过滤.           
 

                    

REQUEST               

         

FORWARD         

                   

INCLUDE         

         

ERROR

请求编码过滤器:CharacterEncodingFilter

(Filter)过滤器的使用_第2张图片

 

后期继续补充~

你可能感兴趣的:(过滤器的使用介绍)