一、 什么是过滤器
从技术上讲过滤器是一个中间组件,用于拦截源数据和目的数据间的消息,并且过滤二者之间传递的数据。对于 WEB 应用程序,过滤器是驻留在 WEB 服务器上的 WEB 组件。对于客户端和目标资源而言过滤器是透明的,他们是不知道发送来的数据是否经过过滤器的处理。
二、 过滤器的作用
过滤器相当于一个警卫,阻止不想要的信息从一个点传递到另一个点。我们通常利用过滤器进行以下几种应用:
l 认证过滤
l 登陆和审核过滤
l 图像转换过滤
l 数据压缩过滤
l 加密过滤
l 令牌过滤
l 资源访问触发事件过滤
l XSLT 过滤
l MIME-type 过滤
三、 过滤器的生命周期
一个过滤器要经过编码、编译、部署、运行四个步骤。
l 当服务器启动时, web 容器调用 init() 方法对过滤器进行初始化, init ()这个方法只执行一次。
l 服务器启动后,当满足要求的数据到来时 web 容器调用 doFilter() 方法对数据进行过滤。
l 当服务器关闭时 web 容器调用 destroy() 方法销毁过滤器。
四、 怎样编写过滤器
1. 我们编写的过滤器应该实现 Filter 接口,并实现里面的全部方法。
2. 在 web.xml 文件中实现过滤器的配置(和 Servlet 类似)。
五、 一个 servlet 对应多个过滤器时候过滤器执行顺利
1. 范围大的先执行,范围小的后执行。
2. 先执行 <url-pattern> 后执行 <servler-name>
3. 同为 <url-pattern> 或同为 <servler-name> 时根据其在 web.xml 文件中出现的先后顺利执行。