拦截器和过滤器两者都是使用AOP的思想,都可以实现权限、日志的验证
一、使用范围不同
1拦截器
可以使用在容器当中,Application中,可以用在web容器中
2过滤器
只能用在web容器中
二、规范不通
1拦截器是Spring中支持的
2过滤器是servlet中定义的
三、使用资源不通
拦截器在Spring中管理配置,可以使用Spring的资源信息,比如service,数据源,事务,注入到容器中就可以了。
四、过滤数据范围
拦截器只能拦截action层面的请求
过滤器对所有请求都可以起作用
五、其他
拦截器可以访问上下文中的对象,过滤器不能
拦截器在action中的整个生命周期中可以被多次调用,但是过滤器只有容器初始化的时候被调用一次
拦截器可以使用IOC容器当中的bean,过滤器不行
拦截器可以注入一个service,可以调用业务逻辑
范围
Tomcat容器—》过滤器 —》Servlet—》拦截器—》controller
拦截器:
handlerInterceptor
preHandler
postHandler
afterCompletion
过滤器
init
doFilter
destroy