拦截器是基于java的反射机制,而过滤器是基于函数回调。拦截器不依赖于servlet容器,而过滤器依赖于servlet容器。拦截器只能对action的请求起作用,而过滤器几乎对所有的请求起作用。拦截器可以访问action的上下文,值栈里的对象,而过滤器不能。在action的生命周期里,拦截器可以被多次调用,而过滤器只能在容器被初始化时被调用一次。