1.最通俗的理解
过滤器:你要从一堆请求中通过一个工具挑选出符合你要求的请求,而这个工具就是过滤器
拦截器:当一个流程正在进行时,你希望干预它的进展,甚至是直接将它终止
2.触发时机不同
过滤器是在请求进入容器以后和进入Servlet之前,拦截器则是在进入Servlet之后
3.具体的区别
- 拦截器是基于java反射机制的,而过滤器则是基于函数的回调
- 拦截器不依赖于servlet,而过滤器则是依赖于servlet
- 拦截器只对action动作(进入具体业务逻辑的动作而不包括那些访问静态资源的请求)起作用,而过滤器几乎对所有请求都起作用