相同:
作用相似,都是对请求进行拦截过滤
都可以形成链状结构,在链中方法是有序的
提供框架不同,作用时机不同
所属框架:
过滤器是JAVAEE提供的,拦截器是Spring提供的
作用时机:
- 过滤器是在请求到servlet之前进行过滤;
- 拦截器是在servlet之后,controller之后对请求进行拦截(spring)
- 内部方法数量不同
过滤器内部只有一个抽象方法 doFilter()
在该方法内部写过滤功能的实现
拦截器内存有俩个抽象方法
preHandle():最常用,当请求在servlet之后,到达controller之前调用该方法
postHandle():DispatcherServlet渲染试图之前执行
afterCompletion():在请求即将结束时调用该方法,通常用于释放资源
4. 配置方式不同
过滤器只能配置黑名单;
拦截器既可以配置黑名单也可以配置白名单;