过滤器也称之为拦截器。
例如:验证用户访问权限,记录用户操作,对请求编码进行重新编码,压缩相应信息。
过滤器在web容器内,web浏览器发出请求,过滤器对请求进行处理。
预处理:当用户的请求到达指定网页之前。
后处理:当执行结果要响应到用户之前。
过滤器链:
在web应用中,可以部署多个过滤器,这些过滤器组成了一个过滤器链。
过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求可以在这些过滤器之间传递,直到到达目标资源。
Filter接口共有四个方法:
init过滤器初始化方法
doFilter过滤器的功能实现方法
Destroy销毁方法
Init初始化方法
过滤器生命周期的四个阶段:
加载和实例化:
web容器启动时,会根据@webFilter属性filtername所定义的类名的大小写拼写顺序,或者web.xml中生命的Filter顺序依次实例化Filter。
初始化:
web容器调用init方法,传递FilterConfig对象
doFilter方法的执行
调用此方法将请求传给下一个过滤器或目标资源。
销毁:
destroy
常见的几种过滤器应用:
做统一的认证处理
对用户的请求进行检查和更精确的记录
监视或对用户所传递的参数做前置处理,例如:防止数据注入攻击
改变图像文件的格式
对请求和响应进行编码
对响应做压缩处理
对XML的输出使用XSLT来转换