都需配置
都是实现接口的方式
都是AOP的体现
HandlerInterceptor 拦截器接口
Filter 过滤器接口
区别
Filter 过滤器可以修改request,而Interceptor 拦截器不能
Interceptor 拦截器可以使用IOC容器中的依赖@Autowired,而Filter过滤器不能
Filter过滤器只能在请求的前后使用,而Interceptor拦截器可以详细到每个方法
应用
Filter 过滤器
修改请求(request)和响应(response)内容
完成CORS跨域
HandlerInterceptor 拦截器
在请求处理前后进行调用(Controller)方法调用前后
做统一验证
分布式环境中的应用
Filter 过滤器 过滤URL 写在Configuration 配置中 在分布式中主要用在网关 gateway 中通过白名单黑名单 过滤请求
Interceptor 拦截 拦截登录 判断登录状态 可以使用 spring 所有资源 写在Component容器中
Filter 过滤器需要在web.xml中配置,依赖于Servlet;
Interceptor 拦截器需要在SpringMVC中配置,依赖于框架;
Filter 过滤器的执行顺序在Interceptor 拦截器之前
请求先走过滤器再走拦截器