其实以前也用过滤器,只是按方法来Copy,知其然不知其所以然,今天在下班前用了半小时把书上这部份内容好好看了一下。以前的有些没理解的做法,恍然大悟。
一、过滤器有这么几个特点:
1、  可以检查和修改ServletRequest ServletResponse
2、  可以指定Servlet过滤器和特定的URL关联,只有当客户请求访问这个URL时,才会触发它工作;
3、  独立的过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对像。(这是明天的学习内容)
 
二、所有的Servlet 过滤器都必须实现javax.servlet.Filter接口,这个接口有三个必须实现的方法:
Init(FilterConfig):过滤器的初始化方法,在这里可以读取web.xml文件中Servlet过滤器的初始化参数。
doFilter(ServletRequest,ServletResponse,FilterChain):这里完成实际的过滤操作,FilterChain用于访问后续过滤器;
destroy():销毁过滤器,释放其占的资源
 
三、发布过滤器时,必须在web.xml文件中加入<filter>元素和<filter-mapping>元素,前者用来定义过滤器,后者用来定义过滤器和URL关联,如:
<filter>
  <filter-name>UserFilter</filter-name>
  <filter-class>UserFilter</filter-class>
  <init-param>
<param-name>UserA</param-name>
<param-value>YY</param-value>
</init-param>
 </filter>
......
 <filter-mapping>
   <filter-name>UserFilter</filter-name>
<url-pattern>/user<url-pattern>
</filter-mapping>
…...
二者中的filter-name必须是一致的,当客户请求的URL/user时,将触发该过滤器工作,如果希望过滤所有的URL<url-pattern>值设为“/*”。
 
呵呵,过滤器用起来其实还是比较简单的,明天学习串联Servlet过滤器J