一、Filter介绍
当用户的请求到达指定网页前,可以借助Filter改变请求内容,在执行结果响应到用户前,可以通过Filter修改输出内容。
下面的情况可以使用Filter:
1、统一认证处理
2、对用户的请求作检查、作更精确的处纪录
3、监视或对用户的参数作前置处理
4、改变图像文件格式
5、对响应编码
6、对响应做压缩处理,等等
二、Filter的工作原理
1、Filter的运作方式如果一层接一层,一直从最外面的Filter做到最里面的原始页面。
2、但是并不都是这个顺序,首先Filter中需要doFilter方法,才能继续传到下一个Filter。
3、某些情况下 Filter并不调用doFilter,而是通过其他方式转道其他页面,如:forward、incluede、sendRedirect、sendError等等。
三、Filter请求方式
web.xml中可以使用<dispatcher>设定Filter的请求方式:
1、REQUEST:用户直接对页面请求。
2、FORWARD:通过forward。
3、INCLUDE:通过include。
4、ERROR:错误机制,如
<error-page>
<error-code>.......或<exception-type>
<location>
<error-page>
四、实现过滤器的步骤
1、实现Filter的接口。
2、实现Filter接口中的三个方法,重点doFilter方法。
3、在web.xml中配置<filter>以及<filter-mapping>。
五、框图刨析