随笔-9  评论-168  文章-266  trackbacks-0
过滤链:  webapps 由一个或多个过滤器组成.  (filterChain.doFilter(......)调用下一个过滤器.)
过滤器(Filter):  是对某一资源(servlet 或静态网页内容)的请求或来自某一资源的响应,  或同时对这两者进行执行过滤。链中的所有过滤器都是在遍历完链后,在链末尾才真正执行过滤任务.

一.WEB.XML配置(可有多个<filter>):
    <filter>
        <filter-name>FilterName</filter-name>
        <filter-class>package.class.FilterClass</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>FilterName</filter-name>
        <url-pattern>/*</url-pattern>                      //设置过滤的资源
        <dispatcher>REQUEST</dispatcher>        //设置请求或响应
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

二.类的创建:
Filter接口: 每个 Filter 类都有对 FilterConfig 对象的访问权,可从该对象获得其初始化参数和 ServletContext 的引用.  

doFilter(.....):   执行过滤任务。参数 FilterChain实例.doFilter(ServletRequest request, ServletResponse response) 将请求和响应传递到链中的下一个实体。
destroy():  由 Web 容器调用,指示将从服务中取出的过滤器。在调用此方法之后,Web 容器不会再对此过滤器实例调用 doFilter 方法。
init(FilterConfig filterConfig):  由 Web 容器调用,指示将过滤器放入服务中。servlet 容器只在实例化过滤器之后调用一次 init 方法。

FilterChain实例.doFilter(ServletRequest request, ServletResponse response):  调用链中的下一个过滤器。
request 沿着链传递的请求。
response 沿着链传递的响应。
********************************************************
    package package.class;
    import javax.servlet.Filter;
    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;

    public class FilterName implements Filter{
           filterConfig fc=null;
           public void init(FilterConfig filterConfig) throws ServletException {
                  this.filterConfig=filterConfig;
           }
           public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException {
           //处理过滤任务
           ......
           chain.doFilter(request,respos);
           }
           public void destroy(){
           }
}
posted on 2008-03-31 11:59 紫蝶∏飛揚↗ 阅读(842) 评论(0)  编辑  收藏 所属分类: 随想

只有注册用户登录后才能发表评论。


网站导航: