1 , 拦截器是基于 java 的反射机制的, 而过滤器是基于函数回调.
2 , 拦截器不依赖与 servlet 容器, 过滤器依赖与 servlet 容器.
3 , 拦截器只能对 action 请求起作用, 而过滤器则可以对几乎所有的请求起作用.
4 , 拦截器可以访问 action 上下文, 值栈里的对象, 而过滤器不能访问.
5 , 在 action 的生命周期中, 拦截器可以多次被调用, 而过滤器只能在容器初始化时被调用一次.
6, 拦截器可以获取 IoC 容器中的各个 bean, 而过滤器就不行, 这点很重要, 在拦截器里注入一个 service, 可以调用业务逻辑.
来源: http://www.bubuko.com/infodetail-2984527.html