文章目录
1.Filter是什么?
可以对发生到servlet、jsp、html的请求进行拦截,并对响应也进行拦截
2.怎么去实现Filter
(1)实现Filter接口,重写filter接口里面的方法
public class OneFilter implements Filter
(2)需要在web.xml中配置和映射Filter
url-pattern:指定是该Filter可以拦截哪些资源
<filter>
<filter-name>oneFilter</filter-name>
<filter-class>com.hpe.filter.OneFilter</filter-class>
</filter>
<!--配置filter拦截资源-->
<filter-mapping>
<filter-name>oneFilter</filter-name>
<url-pattern>/oneServlet</url-pattern>
</filter-mapping>
3.filter也是由Servlet容器负责管理的,管理Filter的生命周期
(1)构造方法:执行一次,当服务器加载的时候调用 filter也是一个单例的
(2)init():执行一次,当服务器加载的时候调用,负责对Filter进行初始化
(3)doFilter:每次请求和响应都会执行
(4)destroy:执行一次,当服务关闭或当期项目被卸载的时候执行,用于释放资源
4.如果有多个过滤器,那么过滤器的执行顺序由在web.xml配置filter先后顺序决定
5.FilterChain:Filter链,多个filter可以组成一个Filter链
doFilter(request,response):把请求转给filter链的下一个filter,如果当前filter是filter链中最后一个filter,将直接把请求
给目标资源
6.FilterConfig:代表的是当前filter,可以获取当前filter的配置信息
7.如果使用注解Filter根据filter名字字母的顺序来绝对,一般命名为filter01、filter02以此类推
不建议大家使用注解