过滤器Filter
一、Filter简介
1.概念
Filter:过滤器,是一个接口,是JavaWeb三大组件(Servlet、Filter、Listener)之一。
2.作用
过滤器Filter可以把对资源的请求拦截下来,从而实现一些通用的操作,如:权限控制、统一编码处理、敏感字符处理等。
二、Filter的使用
1.定义实现类
定义Filter的实现类,并重写方法;
【注意】实现Filter接口导包时,导的是javax.servlet.*。
2.配置拦截路径(★)
在实现类上方用@WebFilter注解来配置要拦截资源的路径;
3.放行
对资源进行处理后,放行(doFilter())资源。
【tips】Filter的执行流程:放行后访问对应的资源,访问完资源后回到Filter,执行放行后的逻辑代码,即:放行前代码→放行→访问被拦截的资源(别光拦截不放行)→放行后代码。所以一般在放行前对请求数据进行处理,放行后对响应数据进行处理。
三、Filter拦截路径配置和过滤器链
1.拦截路径配置
(1)拦截具体资源:/index.jsp:只有访问index.jsp时才会被拦截;
(2)目录拦截:/user/*:访问/user目录下的所有资源时,都会被拦截;
(3)后缀名拦截:*.jsp:访问所有后缀为jsp的资源时,都会被拦截;
【注意】后缀名拦截不以/开头。
(4)拦截所有:/*:访问所有资源时,都会被拦截。
2.过滤器链
一个Web应用中可以配置多个过滤器,这多个过滤器称为过滤器链。
(1)过滤器链的执行流程
(2)过滤器链中多个过滤器的执行顺序
注解配置的Filter的执行顺序,按照实现类类名的自然排序顺序来执行。