### Filter和Interceptor的区别
* Filter是基于函数回调的,而Interceptor则是基于Java反射的。
* Filter依赖于Servlet容器,而Interceptor不依赖于Servlet容器。
* Filter对几乎所有的请求起作用,而Interceptor只能对action请求起作用。
* Interceptor可以访问Action的上下文,值栈里的对象,而Filter不能。
* 在action的生命周期里,Interceptor可以被多次调用,而Filter只能在容器初始化时调用一次。
![](https://img.kancloud.cn/89/8f/898f8dac33f91cfb105f37463bc9d34c_810x563.png)
**过滤器(Filter) :可以拿到原始的http请求,但是拿不到你请求的控制器和请求控制器中的方法的信息。
拦截器(Interceptor):可以拿到你请求的控制器和方法,却拿不到请求方法的参数。
切片 (Aspect): 可以拿到方法的参数,但是却拿不到http请求和响应的对象**