什么是Filter?
当用户的请求到达指定的网页之前,可以借助过滤器来改变这些请求的内容;
同样的,当执行结果要响应到用户之前,若先经过过滤器,就可以修改输出的内容。
filter的运用方法:
1、同意的认证处理
2、对用户的请求做检查、做更精确的记录
3、监视或对用户所传递参数做前置处理,例如:防止数据隐码攻击
4、改变图像文件的格式
5、对响应做编码的动作
6、对响应做压缩处理
7、对xml的输出使用XSLT来转换
filter的基本运作方式:
filter的运作方式如同一层接一层,一直从最外面的filter做到最里面的原始页面,然后再把响应一层一层的传送出去,最后产生回传结果给用户。但是filter也不是只能按照这个顺序传送。
首先fulter必须使用doFilter()才可以继续转送到下一个Filter,因此可以选择某种条件下让filter不要调用doFilter(),而是通过其他方法转向到其他页面、或者是抛出异常处理。
Filter主要可通过RequestDispatcher的forward()、include()或HttpServletResponse的sendRedirect()、sendError()等方法来转向到其他页面的动作。