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之后的方法。