过滤器和拦截器的区别
2023.8.26
1.过滤器是基于函数回调的,拦截器是基于反射机制(动态代理)的。
2.使用的范围上来说,过滤器依赖与servlet,依赖于tomcat,只能用在web应用中;拦截器是一个spring组件,还可以应用在application和swing应用中。
3.触发时间上,过滤器在servlet之前触发,拦截器在servlet之后、controller之前触发。
4.范围上,过滤器几乎可以作用于所有的进入容器的请求,拦截器则只能拦截controller对应的action请求和一些静态资源请求。
5.拦截器可以访问action上下文、值、栈,但是过滤器不行
6.action的生命周期中,拦截器可以调用多次,但是过滤器只能在容器初始化时使用一次。
7.拦截器可以获取IOC容器中的各种bean,但是过滤器不行