【1】Filter的作用
Filter可以在请求到达目标资源之前进行拦截
Filter也可以放行请求
Filter可以在响应到达浏览器之前做一个预处理
【2】Filter创建以及配置
创建一个类实现Filter接口
在web.xml文件中对Filter进行配置
<filter>
<filter-name>Filter的别名</filter-name>
<filter-class>Filter的全类名</filter-class>
</filter>
<filter-mapping>
<filter-name>别名</filter-name>
<url-pattern>需要Filter拦截的资源地址</url-pattern>
</filter-mapping>
[3] Filter的生命周期
构造器:在服务器启动时调用,只会调用一次,说明Filter是单例多线程
init():在构造器被调用后,紧接着被调用。
doFilter():每一次拦截请求时都会调用
参数:ServletRequest request
请求报文
ServletResponse response 响应报文
FilterChain chain
放行请求
通过 chain.doFilter(request,response) 放行请求
destroy方法在项目停止时调用
【4】Filter执行顺序
多个Filter的执行顺序,有filter-mapping标签的配置顺序决定
【5】Filter拦截什么请求
Filter默认只会拦截直接向目标资源发送的请求,而像转发之类的请求不会拦截;
可以在filter-mapping的dispatcher标签中来指定过滤器要拦截的请求类型