`
liuyf8688
  • 浏览: 97213 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javax.servlet.Filter

阅读更多
Filters是在请求资源(Servlet或静态内容)或者响应资源时,也可以在请求和响应同时进行时,执行过滤任务。
Filters通过doFilter方法来执行过滤的。每个过滤都要访问一个FilterConfig对象,该对象包含了初始参数,要引用的ServletContext对
象。例如,在调入资源时,执行过滤。
Filters是被配置在web.xml配置文件中的。
一些需要过滤器的情况:
(
1)认证Filter
(
2)日志和审核Filter
(
3)图片转换Filter
(
4)数据压缩Filter
(
5)密码Filter
(
6)令牌Filter
(
7)触发资源访问事件的Filter
(
8)XSL/TFilter
(
9)媒体类型链Filter
方法列表:
(
1)destory():当Filter从服务中去除时,由servletcontainer来调用。在Filter的doFilter()的所有线程退出时或在一个时间周期
结束后该方法仅会被调用一次。在webcontainer调用过该方法后,该filte的r实例将不会再调用doFilter()。
该方法提供给Filter一个清除任意资源的时机,这些资源可能是被保存的(例如,内存、文件句柄、线程)或确保持久状态是和在内存Filter
的状态是同步的。
(
2)doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain):Filter的doFilter方法是
在每次一个请求或响应时被调用,来处理过滤链最后的客户端请求资源。FilterChain被传入到此方法中,允许过滤器将request,response
传递到过滤链的下一个过滤。
这个方法的典型设计应该是遵循以下的模式:
<1>检测request
<2>通过特定过滤器对请求数据的内容或头信息进行过滤,并重新封装成request对象
<3>通过特定过滤器对响应数据的内容或头信息进行过滤,并重新封装成response对象
<4>通过chian对象调用过滤链的下一个过滤器,或不传递request/response到过滤链的下一个过滤器从而阻挡请求处理。
<5>在过滤链的下一个过滤器被调用后,直接设置头信息到response对象
(
3)init(FilterConfigconfig):当Filter被放入到服务中时,由servletcontainer来调用。在实例化Filter后,init
会被调用一次。
有两种情况,容器不会将将Filter放入服务中:
<1>抛出ServletException时
<2>在容器规定的时间内没有返回实例





分享到:
评论

相关推荐

    javax.servlet.jar下载

    javax.servlet.Filter.class javax.servlet.FilterConfig.class javax.servlet.ServletRequestAttributeListener.class javax.servlet.ServletRequestAttributeEvent.class javax.servlet.GenericServlet.class ...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    javax.servlet的jar包,解决找不到javax.servlet.*等问题的!欢迎下载!!

    解决cannot be cast to javax.servlet.Filter 报错的问题

    本文主要介绍解决cannot be cast to javax.servlet.Filter 报错的问题,这里提供解决办法,有编程的朋友遇到此错误可以参考下

    servlet-api-2.4.jar.zip

    javax.servlet.Filter javax.servlet.Servlet javax.servlet.FilterChain javax.servlet.http.Cookie javax.servlet.FilterConfig javax.servlet.ServletConfig javax.servlet.GenericServlet javax.servlet....

    servlet2.4doc

    Filter - interface javax.servlet.Filter. A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or ...

    servlet-logging-filter:Servlet过滤器,用于记录请求和响应

    &lt; filter&gt;&lt; filter&gt;LoggingFilter&lt;/ filter&gt;&lt; filter&gt;javax.servlet.filter.logging.LoggingFilter&lt;/ filter&gt;&lt;/ filter&gt;&lt; filter&gt;&lt; filter&gt;LoggingFilter&lt;/ filter&gt;&lt; url&gt;/*&lt;/ url&gt;&lt;/ filter&gt; 或javax.servlet.

    Filter_Listener相信代码使用

    import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet....

    c3p0工具包(jdbc)

    import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet....

    servlet-api.jar

    javaweb项目新建servlet会报错,提示没有HTTPServlet类,这是由于 ...并且import javax.servlet.annotation.WebFilter 不能引入,找不到类,是由于这个类只有在servlet-api 3.0之后的包才有。tomcat对应的版本要7.0以上

    javaweb拦截器配置及原理.doc

    &lt;filter-class&gt;cn.itcast.cc.filter.CharacterEncodingFilter&lt;/filter-class&gt; &lt;param-name&gt;encoding &lt;param-value&gt;UTF-8 &lt;/filter&gt; ``` 例如,我们可以编写一个用于统一 WEB 字符编码的 Filter: ```java ...

    Tomcat和weblogic中文乱码问题解决方案

    import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet....

    java sql注入l

    74 &lt;filter-class&gt;com.tarena.dingdang.filter.AntiSqlInjectionfilter&lt;/filter-class&gt; 75 &lt;/filter&gt; 76 &lt;filter-mapping&gt; 77 &lt;filter-name&gt;antiSqlInjection&lt;/filter-name&gt; 78 &lt;url-pattern&gt;/*...

    基于Servlet实现 Filter 拦截器

    创建第一个 Filter,将其命名为 Filter01,扩展 javax.servlet.Filter 类并实现 doFilter() 方法。在此方法中,您可以编写逻辑,例如打印 "Filter01 before",并在处理完请求后打印 "Filter01 after"。 创建第二个 ...

    Servlet过滤器使用

    1、Filter接口:所有的Servlet过滤器类都必须实现javax.servlet.Filter接口 a、init(FilterConfig): 这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取...

    web.xml详细说明

    &lt;filter&gt;&lt;/filter&gt; 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。 &lt;filter-mapping&gt;&lt;/filter-mapping&gt; 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面...

    JSP 开发中过滤器filter设置编码格式的实现方法

    JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前...import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig;

    Web配置详解

    &lt;filter&gt;&lt;/filter&gt; 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。&lt;filter-mapping&gt;&lt;/filter-mapping&gt; 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相...

    jsp实现登录验证的过滤器

    本文实例为大家分享了jsp实现登录验证的过滤器,供大家参考,具体内容如下 1.新建一个Dynamic Web Project项目,里面新建1...import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.Fi

    Machinetool Java项目

    import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; /** * Created by GuoFeng on 2016/2/21. TODO 登陆验证拦截类 拦截所有html请求 进行登陆验证 */ public class LoginFilter...

Global site tag (gtag.js) - Google Analytics