JavaWeb课程系列

5.FilterConfig

FilterConfig类似ServletConfig,是filter的配置信息对象。FilterConfig对象具有以下方法。

getFilterName():获取当前filter的名字。获取的是在web.xml中配置的filter-name的值

getInitParameter(String name):获取filter的初始化参数。在web.xml中配置

getInitParameterNames():获取filter初始化参数名的集合。

getServletContext():获取当前web工程的ServletContext对象。

6.Filter的url-pattern

url-pattern是配置filter过滤哪些请求的。主要有以下几种配置:

web.xml中配置的/都是以当前项目路径为根路径的

1)精确匹配:

         /index.jsp /user/login    会在请求/index.jsp、/user/login的时候执行过滤方法

2)路径匹配:

         /user/*              /*               凡是路径为/user/下的所有请求都会被拦截,/*表示拦截系统的所有请求,包括静态资源文件。

3)扩展匹配:

         *.jsp *.action             凡是后缀名为.jsp  .action 的请求都会被拦截。

注意:/login/*.jsp  这种写法是错误的,只能是上述三种的任意一种形式。不能组合新形式。

*jsp也是错误的,扩展匹配必须是后缀名

4)多重url-pattern配置

上面的三种形式比较有局限性,但是url-pattern可以配置多个,这样这三种组合基本就能解决所有问题了

7.多Filter执行顺序

如果同一个资源有多个filter都对其拦截,则拦截的顺序是按照web.xml中配置的顺序进行的

执行流程图如下

请求总是在处理之后再回来执行doFilter之后的方法。