拦截器和过滤器的相似之处是,二者都实现了aop(面向切面)编程思想的体现。
都能够实现的【权限检查】,【日志记录等】
不同之处在于四个方面:
1:【使用范围不同】
过滤器=》过滤器是Servlet规范的,只能使用与Web程序中。
拦截器=》拦截器既可以用在Web程序中,也可以用在Application、Swing程序中
2:【规范不同】
过滤器=》过滤器是由Servlet规范中定义的,是Servlet容器支持的
拦截器=》拦截器是在Spring容器内,是Spring框架支持的
3:【使用资源不同】
过滤器=》不能同拦截器一样
拦截器=》同代码块一样,拦截器也是Spring的组件之一,归Spring管理,配置在Spring的配置文件之中,因此能够使用Spring中的任何资源、对象(例如:Service对象,数据源,事务管理等,由IOC注入到拦截器即可)
4:【触发时机不同】{触发时机一定要说,是个术语}
过滤器=》过滤器只在servlet前后起作用。(在未进入到指定url的servlet前执行过滤方法)
拦截器=》拦截器可以深入到方法前后,抛出异常的前后等,具有有很大的弹性,所以在Spring框架的程序中要优先使用拦截器。
另:老师补充【
过滤器:容器是servlet,是javaee标准;
拦截器:实现基于java的反射机制,属于AOP的一种应用,
】