拦截器(Interceptor)和过滤器(Filter)的区别
1. 过滤器在一个request进入servlet之前,处理request内容。在response返回客户端之前,处理response内容。而拦截器是
无法操作request、response的内容的
2. 过滤器只在request进入servlet 前后进行处理,而拦截器精确到方法,典型的AOP(面向切面编程)。
3. 过滤器是JavaEE标准,所以过滤器值能在servlet容器(例如Tomcat)中实现,而拦截器可以用于JavaEE,JavaSE中。
4. 过滤器可以对所有请求起作用,而拦截器只能对action起作用。
5. 过滤器无法访问action上下文、值栈里的对象,而拦截器可以。
6. 在action生命周期里面,过滤器只在容器初始化时被调用一次,而拦截器可以被多次调用。
综上:过滤器更多的是用来做权限校验,编码统一修改等。而拦截器适合于日志等。