JAVA WEB FILTER(过滤器)
2014-08-10 21:06
337 查看
Filter 技术是servlet 2.3 新增加的功能。
Filter技术使用户可以改变一个request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在response离开servlet时处理response.换种说法,filter其实是一个“servlet chaining“(servlet 链).
包括
1. 在servlet被调用之前截获;
2. 在servlet被调用之前检查servlet request;
3. 根据需要修改request头和request数据;
4. 根据需要修改response头和response数据;
5. 在servlet被调用之后截获.
建立一个过滤器涉及下列五个步骤:
1、建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码,init方法建立设置操作,而destroy方法进行清除。
2、 在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括 表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为 FilterChain,如下一步所述,此参数用来调用servlet或JSP页。
3、调用FilterChain对象的doFilter方法。 Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
4、对相应的servlet和JSP页面注册过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。
5、禁用激活器servlet。防止用户利用缺省servlet URL绕过过滤器设置。
在web.xml中进行部署
分别是:filter和filter-mapping。filter元素向系统注册一个过滤对象,filter-mapping元素指定该过滤对象所应用的URL。
1. filter元素
filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六个可能的子元素:
:icon 这是一个可选的元素,它声明IDE能够使用的一个图象文件。
:filter-name 这是一个必需的元素,它给过滤器分配一个选定的名字。
:display-name 这是一个可选的元素,它给出IDE使用的短名称。
:description 这也是一个可选的元素,它给出IDE的信息,提供文本文档。
:filter-class 这是一个必需的元素,它指定过滤器实现类的完全限定名。
:init-param 这是一个可选的元素,它定义可利用FilterConfig的getInitParameter方法读取的初始化参数。单个过滤器元素可包含多个init-param元素。
2. filter-mapping元素
filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。它包含如下三个可能的子元素::
:filter-name 这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。
:url-pattern 此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用的URL。所有filter-mapping元素中必须提供url-pattern或 servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素项。如果希望过滤器适用于多个模式,可重复整个filter-mapping元素。
:servlet-name 此元素给出一个名称,此名称必须与利用servlet元素给予servlet或JSP页面的名称相匹配。不能给单个filter-mapping元素提供 多个servlet-name元素项。如果希望过滤器适合于多个servlet名,可重复这个filter-mapping元素。
Filter技术使用户可以改变一个request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在response离开servlet时处理response.换种说法,filter其实是一个“servlet chaining“(servlet 链).
包括
1. 在servlet被调用之前截获;
2. 在servlet被调用之前检查servlet request;
3. 根据需要修改request头和request数据;
4. 根据需要修改response头和response数据;
5. 在servlet被调用之后截获.
建立一个过滤器涉及下列五个步骤:
1、建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码,init方法建立设置操作,而destroy方法进行清除。
2、 在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括 表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为 FilterChain,如下一步所述,此参数用来调用servlet或JSP页。
3、调用FilterChain对象的doFilter方法。 Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
4、对相应的servlet和JSP页面注册过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。
5、禁用激活器servlet。防止用户利用缺省servlet URL绕过过滤器设置。
在web.xml中进行部署
分别是:filter和filter-mapping。filter元素向系统注册一个过滤对象,filter-mapping元素指定该过滤对象所应用的URL。
1. filter元素
filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六个可能的子元素:
:icon 这是一个可选的元素,它声明IDE能够使用的一个图象文件。
:filter-name 这是一个必需的元素,它给过滤器分配一个选定的名字。
:display-name 这是一个可选的元素,它给出IDE使用的短名称。
:description 这也是一个可选的元素,它给出IDE的信息,提供文本文档。
:filter-class 这是一个必需的元素,它指定过滤器实现类的完全限定名。
:init-param 这是一个可选的元素,它定义可利用FilterConfig的getInitParameter方法读取的初始化参数。单个过滤器元素可包含多个init-param元素。
2. filter-mapping元素
filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。它包含如下三个可能的子元素::
:filter-name 这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。
:url-pattern 此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用的URL。所有filter-mapping元素中必须提供url-pattern或 servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素项。如果希望过滤器适用于多个模式,可重复整个filter-mapping元素。
:servlet-name 此元素给出一个名称,此名称必须与利用servlet元素给予servlet或JSP页面的名称相匹配。不能给单个filter-mapping元素提供 多个servlet-name元素项。如果希望过滤器适合于多个servlet名,可重复这个filter-mapping元素。
相关文章推荐
- Java Web 之过滤器Filter详解
- ⑧javaWeb之在例子中学习(过滤器Filter)
- Java Web 的servlet 之过滤器 filter
- java web 过滤器filter
- 深入分析JavaWeb 37 -- 过滤器Filter典型應用
- JavaWeb中过滤器Filter
- Java WEB中常用的几种过滤器Filter
- javaweb中Filter(过滤器)的常见应用
- 10018---JavaWeb基础--过滤器(Filter)
- 重新学javaweb---过滤器 Filter基础知识
- JavaWeb -- Servlet Filter 过滤器
- 学习笔记_Filter小结(过滤器JavaWeb三大组件之一)
- [filter] Java web 中过滤器的配置
- javaWeb自定义可排序过滤器注解,解决Servlet3.0下@WebFilter注解无法排序问题
- JavaEE Web开发之Filter和Listener(过滤器和监听器)
- Java Web 之过滤器Filter详解
- JavaWeb Filter--过滤器 简介
- JavaWeb-19 (JDBC之过滤器Filter)
- javaWeb-Servlet之Filter(过滤器)
- Java Web 乱码过滤器 filter