一、Filter的完整流程
Filter对用户请求进行预处理,接着对请求交给servlet进行处理并生成响应,最后filter再对服务器响应进行后处理。
二、主要工作
(1)拦截客户的HttpServletRequest请求。
(2)检查修改HttpServletRequest的头和数据。
(3)拦截HttpServletResponse.
(4)修改HttpServletResponse的头和数据。
三、Filter分类
1、用户授权的Filter,过滤用户非法请求。
2、日志Filter,记录某些特殊用户请求。
3、负责解码Filter,对非标准编码解码。
4、改变xml内容。
5、一个请求和响应可被多个Filter拦截。
四、Filter创建步骤:
1、创建Filter类
创建Filter类必须实现Filter接口。
实现doFilter方法。方法参数FilterChain
调用chain.doFilter(request,response)前对请求预处理,调用后对服务器响应处理。
2、配置Filter,两种方法
(1)在Filter类上,添加注释@WebFilter(filterName="firstFilter",urlPattern={"/"})
(2)在web.xml中配置<fiter>
- <filter-name>encodingfilter</filter-name>
- <filter-class>com.my.app.EncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingfilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
3、filter获取初始化参数
<span style="white-space:pre"> </span>FilterConfig类
<span style="white-space:pre"> </span>