一.Filter的作用
当用户的请求到达指定的URL之前,可以借助Filter来改变这些请求的内容;同样的,当响应结果到达客户端之前,可以使用Filter修改输出的内容。
二.FilterChain(过滤器链)
一个FilterChain中包含多个Filter。
三.过滤器的工作原理
四.过滤器的生命周期(实例化以及初始化都是随着服务器启动而加载一次)
五.过滤器的部署(在web.xml中加入以下代码来部署)
1 <filter> 2 <filter-name>Logger</filter-name> 3 <filter-class>com.util.LoggerFilter</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>Logger</filter-name> 7 <url-pattern>/*</url-pattern> 8 </filter-mapping>
注意:两个<filter-name>标签中间的名字要保持一致,<filter-class>标签中间要写包名.类名
<url-patter>标签中间写的是要拦截的url
多个过滤器,这样配置时,<filter-mapping>标签的顺序决定了过滤器链中过滤器的顺序
六.Filter接口
1.过滤器是一个对象,该对象的类实现了Filter接口
2.Filter接口包含以下方法:
注意:我们只需在doFilter()方法中处理事物即可,另外两个方法中可以不用写任何语句
七.过滤器的应用场合:
1.加载:对于到达系统的所有请求,过滤器收集诸如浏览器类型,一天中的时间等相关信息,并对它们进行日志记录
2.性能:过滤器在内容通过线路传来并在到达Servlet和JSP页面之前解压缩该内容,然后再取得响应内容,并在响应内容发送到客户机器之前将它转换为压缩格式
3.安全:过滤器处理身份验证令牌的管理,并适当地限制安全资源的访问,提示用户进行身份验证或将它们指引到第三方进行身份验证.
4.会话管理:将Servlet和JSP页面与会话处理代码混杂在一起可能带来相当大的麻烦.使用过滤器来管理会话可以让WEB页面集中精力考虑内容显示和委托处理,而不必担心会话管理的细节.