快捷搜索:  汽车  科技

为什么有了拦截器还有过滤器?过滤器和拦截器的区别

为什么有了拦截器还有过滤器?过滤器和拦截器的区别四:区别2、两者都可以实现权限鉴定 日志记录等。在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。三: 相似之处1、两者都是AOP编程思想的一个落地实现。

每日一题 你来投稿 我来解答!


一: 过滤器(Filter)

过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息。

二: 拦截器(Interceptor)

在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。

三: 相似之处

1、两者都是AOP编程思想的一个落地实现。

2、两者都可以实现权限鉴定 日志记录等。

四:区别

1、过滤器是基于函数回调 拦截器是基于反射。

2、过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器 它是spring框架支持的 所以它可以使用spring中的任何资源、对象如数据源、事务管理等。

3、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,在拦截器里注入一个service,可以调用业务逻辑。

4、使用细节、范围不一样 过滤器知识在Servlet前后起作用 而拦截器能够在方法前后、异常抛出前后等地方使用 它具有更大的弹性。

5、拦截器是被包裹在过滤器之中的 具体图形如下(图来源于网络 侵删):

为什么有了拦截器还有过滤器?过滤器和拦截器的区别(1)

为什么有了拦截器还有过滤器?过滤器和拦截器的区别(2)

想了解更多或者投稿 欢迎关注和私信回复【每日一题】或【面试资料】。

猜您喜欢: