- 过滤器是基于函数回调,拦截器是基于java的反射机制;
- 过滤器依赖于servlet容器,拦截器不依赖servlet容器;
- 过滤器几乎可以对所有请求起作用,但是拦截器只对action请求起作用;
- 拦截器可以访问action请求上下文、值、栈、里面的对象,而过滤器不能访问;
- 过滤器是在容器初始化时被调用一次,拦截器在action的生命周期中可以多次被调用;
- 拦截器可以获取IOC容器中的所有bean,在拦截器中注入一个service,可以调用这个service的业务处理逻辑,同样也可以通过调用各个service来实现更为复杂的业务拦截处理逻辑,而这个特点过滤器不具备。
- 回调函数
如果把函数的地址作为参数传递给另一个函数,当这个地址用来被调用其所指的函数是,这就是发生了函数的回调。回调函数是在特定的条件下,由另一个函数发起的调用,是被调用者。