过滤器时J2EE模块下servlet的组件,实际上就是对web资源进行拦截并在处理后交给下一个过滤器或者是servlet处理,通常是拦截request进行处理,偶尔也会对response进行拦截处理。
流程如图
开发过滤器三要素
任何过滤器都要实现javax.servlet.Filter接口
在Filter接口中的doFilter()方法中编写过滤器的功能代码
在开发web应用是如果要对指定的过滤器生效,在web.xml中对过滤器进行配置,说明拦截的URL的范围。
配置.Filter
常用的配置项是在web.xml中的url-patterns中,有几种不同的拦截方式。
1./readme.jsp,/index.jsp一类的就是通过指定资源进行匹配。
2.*.do,*.action一类的就是通过后缀名进行匹配,所有后缀名相同的地址都会被拦截。
3./*是通配符,他会拦截所有web资源,并且也会拦截后缀名匹配。
4./abc/*是以目录进行匹配,在/abc目录下的都会被拦截下来。
过滤器的特性
过滤器对象在Web应用启动时被创建且全局唯一。
唯一的过滤器对象在并发环境中采用“多线程”提供服务。