拦截器Interceptor和过滤器Filter有什么区别呢?
下文笔者讲述拦截器Interceptor和过滤器Filter的区别说明,如下所示
拦截器和过滤器区别
下文笔者采用表格的方式讲述拦截器和过滤器的区别说明类型 | 过滤器Filter | 拦截器interceptor |
规范 | Filter是在Servlet规范中定义的,是Servlet容器支持的 | 拦截器是在Spring容器内的 是Spring框架支持的 |
使用范围 | 过滤器只能用于Web程序中 | 拦截器既可以用于Web程序 也可以用于Application、Swing程序中 |
原理 | 过滤器是基于函数回调 | 拦截器是基于java的反射机制 |
使用的资源 | 过滤器不能使用Spring资源 | 拦截器是一个Spring的组件 归Spring管理,配置在Spring文件中 因此能使用Spring里的任何资源、对象 例Service对象、数据源、事务管理等,可以通过loC注入到拦截器 |
深度 | Filter在只在Servlet前后起作用 | 拦截器能够深入到方法前后、异常抛出前后等 因此拦截器的使用具有更大的弹性 |
注意事项: 在Tomcat容器中 过滤器和拦截器触发时机不同 过滤器是在请求进入容器后 但请求进入servlet之前进行预处理的 请求结束返回也是 在servlet处理完后,返回给前端之前 过滤器包裹住servlet,servlet包裹住拦截器
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。