Filter 过滤器
概念:当访问服务器的某些资源时,过滤器可以将请求先进行拦截,在完成了一定的特殊功能后,可以让此请求继续执行。
一. 实现步骤
1、实现Filter接口
2、重写方法
3、配置web.xml
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.qf.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/a.jsp</url-pattern>
</filter-mapping>
二. 过滤器的url配置
- 完全匹配:拦截指定资源
- 扩展名匹配:*.扩展名,拦截指定后缀的资源
- 目录匹配:/文件夹/*,拦截指定目录中的所有资源
- 匹配所有:/*,拦截所有资源
三. filter的生命周期及执行流程
3.1 生命周期
1、init:服务器开启后执行,只会执行一次
2、doFilter:每次请求都会被拦截
3、destroy:服务器正常关闭后执行
3.2 执行流程
1、执行放行前的功能
2、放行
3、访问目标资源
4、执行放行后的代码
四. 多个过滤器
假设有两个过滤器
执行步骤:
1、执行过滤器1放行前的功能
2、过滤器1放行
3、执行过滤器2放行前的功能
4、过滤器2放行
5、访问目标资源
6、执行过滤器2放行后的功能
7、执行过滤器1放行后的功能