拦截器和过滤器区别
(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接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向。拦截器可以加载用户信息,判断用户的访问权限。