定义
过滤器(Filter):基于servlet容器回调实现的,可以拦截请求和响应的所有内容扩静态资源和动态资源。
拦截器(Interceptor):基于Spring框架AOP动态代理实现的(反射),只作用于Spring上下文中,只能拦截请求Controller之前或响应返回视图之前。
过滤器 | 拦截器 | |
容器/框架 | 基于Servlet容器 | 基于Spring |
实现接口 | Filter | HandlerInterceptor |
执行时机 | Servlet处理前后 | Controller执行/视图返回前 |
实现原理 | 函数回调 | AOP动态代理(反射机制) |
调用次数 | 只在容器初始化时被调用一次 | 可以多次被调用 |
使用场景 | 字符编码、安全控制、日志记录 | 处理复杂业务逻辑:权限、日志、事物、参数转换等 |