1.过滤器Filter,能够对Servlet容器传给Web组件的ServletRequest和ServletResponse对象进行检查和修改,过滤器本身不生成这两个对象,它只为Web组件提供如下过滤功能:
(1)过滤器能够在Web组件调用之前检查ServletRequest对象,修改请求头和请求正文内容,或者对请求进行预处理操作。
(2)过滤器能够在Web组件被调用之后检查ServletResponse对象,修改响应头和响应正文。
2.所有自定义过滤器都必须实现javax.servlet.Filter接口,这个接口含有3个过滤器类必须实现的方法:
(1)init(FilterConfig config):这是过滤器初始化方法,在Web启动时,Servlet容器就创建了包含过滤器配置信息的FilterConfig对象,然后创建Filter对象,接着调用Filter的init()方法,在这个方法可以通过config参数读取web.xml中为过滤器配置的初始化参数。
(2)doFilter(ServletRequest req,ServletResponse res,FilterChain chain):这个方法完成实际过滤操作。当客户端URL和过滤器配置映射的URL匹配时,Servlet容器将先调用过滤器的doFilter()方法。FilterChina参数用于访问后续过滤器或Web组件。
(3)Destroy():容器销毁过滤器对象前调用该方法,在这个方法中可以释放过滤器占用的资源。