前言:这个是我自己学习《Java Web 整合开发 王者归来》的学习笔记,对你们可能没有参考价值。
1Filter概述
Filter以为滤镜或者过滤器,用于在Servlet之外对request或者response进行修改。FilterChain滤镜链是由多个Filter组成的。客户端请求request在抵达Servlet之前;服务器响应response在Servlet到达浏览器之前都会经过FilterChain中所有的Filter。
2Filter接口
一个Filter必须实现javax.servlet.Filter的接口。Filter接口有三个方法。
public abstract interface javax.servlet.Filter {
public abstract void init(javax.servlet.FilterConfig arg0) throws javax.servlet.ServletException;
public abstract void doFilter(javax.servlet.ServletRequest arg0, javax.servlet.ServletResponse arg1, javax.servlet.FilterChain arg2) throws java.io.IOException, javax.servlet.ServletException;
public abstract void destroy();
}
其中init方法和destroy方法只调用一次,doFilter方法每次客户端请求时都会被调用一次。
3Filter的配置
Filter需要配置在web.xml中才能生效。一个Filter需要配置<filter >与<filter-mapping>标签。
<filter>
<filter-name>filtername</filter-name>
<filter-class>helloFilter.MyFilter</filter-class>
<init-param>
<param-name>paramName</param-name>
<param-value> paramValue </param-value>
</init-param>
</filter>
<filter>配置Filter的名称,实现类以及初始化参数。
<filter-mapping>
<filter-name>filtername</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>是用来配置filter映射的标签,<dispatcher>配置到达Servlet的方式,有四种取值:REQUEST,FORWARD,INCLUDE,ERROR四种方式。
web.xml中<filter-mapping>的配置顺序会影响到Filter的执行顺序,配置在前面的Filter要更早执行。
菜包子 2013年6月5日15:14:46
于马甸桥东