一个filter必须实现javax.servlet.Filter接口并定义三个方法:
1.void setFilterConfig(FilterConfig config) //设置filter 的配置对象;
2.FilterConfig getFilterConfig() //返回filter的配置对象;
3.void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) //执行filter 的工作.
init(FilterConfig):这是容器所调用的初始化方法。它保证了在第一次 doFilter() 调用前由容器调用。它能获取在 web.xml 文件中指定的filter初始化参数。
doFilter(ServletRequest, ServletResponse, FilterChain):这是一个完成过滤行为的方法。它同样是上一个过滤器调用的方法。引入的 FilterChain 对象提供了后续过滤器所要调用的信息。
destroy():容器在销毁过滤器实例前,doFilter()中的所有活动都被该实例终止后,调用该方法。
filter的配置
- < filter >
- < filter-name >
- log //filter 名字
- < /filter-name >
- < filter-class >
- LogFilter //filter class(上例的servlet)
- < /filter-class >
- < /filter >
- < filter-mapping >
- < filter-name >log< /filter-name >
- < servletname >servletname< /servlet-name >
- < /filter-mapping >
其中FilterConfig:过滤器的配置,可以读取web.xml里面配置的一些参数
getInitParameter(String name)返回名字为name的初始参数的值
getInitParameterNames()能够返回所有初始参数的名字