版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhou920786312/article/details/83870669
本质区别
Interceptor:基于Java的反射机制
filter:基于函数回调。
从灵活性上说拦截器功能更强大些,Filter能做的事情,Interceptor都能做,而且可以在请求前,请求后执行,比较灵活。
其他区别
filter | Interceptor | |
调用次数 | 只能在容器初始化时调用一次 | 可以被多次调用 |
规范 | 依赖于Servlet容器 | 依赖于Spring容器 |
访问范围 | Filter不能访问Action的上下文,值栈里的对象 | Action的上下文,值栈里的对象 |
深度 | Filter在只在Servlet前后起作用 | 拦截器能够深入到方法前后、异常抛出前后等 |