过滤器(filter)
- 过滤器处于客户端和web资源之间,客户端与web资源之间的请求和响应都要通过过滤器进行过滤
- 传入的request,response提前过滤掉一些信息,或者提前设置一些参数
拦截器(interceptor)
- 拦截器是一种面向方面/切面编程(AOP Aspect-Oriented Programming)
- 你的service或者一个方法前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,
区别
- 拦截器是基于java反射机制的,而过滤器是基于函数回调
- 拦截器不依赖于Servlet容器,而过滤器依赖于Servlet容器
- 拦截器只能对action请求起作用,而过滤器可以对所有的请求起作用
- 在action请求的生命周期周,拦截器可以被多次调用,而过滤器只能在容器初始化的时候****被调用一次。