概念: filter 表示过滤器,是javaWeb的三大组件(Servlet 、filter、Listenr)之一
顾名思义,过滤器可以把对资源的访问,请求拦截下来,进行一些判断,看你有没有满足条件,满足了才给你放行!过滤器通常都是完成操作,比如,权限控制,处理字符敏感等!
过滤器执行流程
1.执行过滤器
2.执行放行后的资源
3.回来执行过滤器放行后的资源
拦截路径:
1.具体资源路径:/index.jsp :只有访问/index.jsp资源时,过滤器才会执行!
2.目录拦截:/user/*:访问/user下的所有资源时,过滤器都会被执行
3.后缀名拦截: .jsp 访问所有后缀名为jsp资源时,过滤器都会被执行
4.拦截所有资源:/ :访问所有资源时,过滤器都会被执行
拦截方式配置:资源被访问的方式
1.注解配置
*设置dispatcherTypes属性
1.request:默认值。浏览器直接请求资源
2.forword:转发访问资源
3.include:包含访问资源
4.error:错误跳转资源
5.async:异步访问资源
//表示浏览器直接请求资源时,该过滤器会被执行
@WebFilter(value = "/index.jsp", dispatcherTypes = DispatcherType.REQUEST)
//只有转发访问index.jsp时,该过滤器才能访问
@WebFilter(value = "/index.jsp", dispatcherTypes = DispatcherType.FORWARD)
//转发访问index.jsp或者直接请求资源时,该过滤器会被执行
@WebFilter(value = "/index.jsp", dispatcherTypes = {DispatcherType.FORWARD,DispatcherType.REQUEST})
过滤器链(配置多个过滤器)
执行顺序:如果两个过滤器:过滤器1,过滤器2
1.过滤器1先执行
2.过滤器2
3.资源执行
4.过滤器2
4.过滤器1
1.过滤器先后顺序问题
1.注解配置:按照类名的字符串名字规则比较,值小的先执行
2.web.xml配置:谁定义在上边,谁先执行!