拦截器和过滤器区别

(1)问题分析:

考官主要考察拦截器和过滤器在应用场景和基本原理方面的差别

(2)核心答案讲解:

​ 1)拦截器是基于java的反射机制的,而过滤器是基于函数回调。
​ 2)拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
​ 3)Filter 不能够使用 Spring 容器资源,拦截器是一个Spring的组件,归Spring管理,配置在Spring文件中,因此能使用Spring里的任何资源
​ 4)Filter 定义在 web.xml 中

(3)问题扩展:

​ Spring的Interceptor(拦截器)与Servlet的Filter有相似之处,比如二者是AOP编程思想的体现,都能实现权限检查、日志记录等。

(4)结合项目中使用

​ Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向。拦截器可以加载用户信息,判断用户的访问权限。

点击此处
隐藏目录