Filter分析

Filter 技术是servlet 2.3 新增加的功能。

它新增加的功能包括:

1. 应用程序生命周期事件控制;

2. 新的国际化;

3. 澄清了类的装载规则

4. 新的错误及安全属性;

5. 不赞成使用HttpUtils 类;

6. 各种有用的方法;

7. 阐明并扩展了几个servlet DTD;

8. filter功能.

功能介绍

其中最重要的就是filter功能.它使用户可以改变一个request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在response离开servlet时处理response.换种说法,filter其实是一个“servlet chaining“(servlet 链)包括

1. 在servlet被调用之前截获;

2. 在servlet被调用之前检查servlet request;

3. 根据需要修改request头和request数据;

4. 根据需要修改response头和response数据;

5. 在servlet被调用之后截获.

你能够配置一个filter 到一个或多个servlet;单个servlet或servlet组能够被多个filter 使用。几个实用的filter 包括:用户辨认filter,日志filter,审核filter,加密filter,符号filter,能改变xml内容的XSLT filter等。

一个filter必须实现javax.servlet.Filter。

三个方法

1. void setFilterConfig(FilterConfig config) //设置filter 的配置对象;

2. FilterConfig getFilterConfig() //返回filter的配置对象;

3. void doFilter(ServletRequest req,ServletResponse res,FilterChain chain) //执行filter 的工作.

注:现setFilterConfig和getFilterConfig方法已取消,代之为init(FilterConfig config)和destory()方法。

原文地址:https://www.cnblogs.com/483647379qq-com/p/8694516.html