filter和interceptor的区别

个人理解:

filter过滤器是java web在请求之前提前过滤掉一些信息,或者设置参数,支持过滤所有url,然后传到action方法中进行业务操作。

interceptor拦截器是利用面向切面编程在一个方法之前调用方法,或在方法之后调用方法实现,也可以在抛出异常时进行业务逻辑操作。

具体区别:

1)拦截器是基于java的反射机制的,而过滤器是基于函数回调

2)拦截器不依赖于servlet容器,而过滤器依赖于servlet容器。

3)拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用

4)拦截器可以访问action上下文、值栈里的对象,而过滤器不能。

5)action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。




原文地址:https://www.cnblogs.com/timeboy/p/9464397.html