Filter即过滤器,在请求到达web容器中的servlet之前对请求进行过滤处理;
配置Filter需要实现java.servlet.Filter接口
接口方法如下:
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
}
@Override
public void destroy() {
}
doFilter方法:
拦截对应url的请求后执行doFilter方法,filterChain对象作用:当一个filter收到请求的时候,调用chain.doFilter才可以访问下一个匹配的filter,若当前的filter是最后一 个filter,调用chain.doFilter才能访问目标资源.
filterChain的执行顺序同web.xml中的filter-mapping的配置顺序
init方法:
用来执行filter的初始化,可以通过filterConfig对象获得初始参数,如下:
<filter>
<filter-name>testFilter</filter-name>
<filter-class>com.hengzhi.filter.TestFilter</filter-class>
<init-param>
<param-name>character</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>testFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
通过filterConfig对象可以在init方法里获取名为"character"的初始化参数,参数值为UTF-8;