什么叫Filter
它会在一组资源(jsp,servles,.css,.html等)的前面执行。它可以让请求得到目标资源,也可以不让请求得达到目标资源。过滤器有拦截的能力。(对一组资源进行统一处理)
Filter接口三个方法(生命周期)
void init(FilterConfig)
- 创建之后马上执行;Filter会在服务器启动时就创建
void destory
- 销毁之前,执行在服务期关闭时销毁
viod doFilter(servletRequest,ServletResponse,FilterChain)
- 每次过滤时都会执行
Filter是单例的!
FilterConfig与ServletConfig相似
-
获取初始化参数:getInitParameter()
-
获取过谚器名称:getFilterName()
-
获取appliction:getServ1 etContext()
FilterChain
- doFilter(servletRequest, ServletResponse):功能是放行,就相当于调用了目标Servlet的service()
web.xml中配置filter
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern>/*</url-pattern> <!--访问任何页面都会经过该filter-->
<!--<url-pattern>/web/*</url-pattern>--> <!--访问web路径下才会经过该filter-->
</filter-mapping>