同学你好~
一、过滤器与拦截器都是对请求进行拦截处理的,区别在于实现的接口不同。
1.正是因为其实现的接口不同,实现的原理也有本质的区别。过滤器是基于函数回调的,拦截器则是基于Java的反射机制(动态代理)实现的。
2.使用范围不同:过滤器实现的是javax.servlet.Filter接口,而这个接口是在Servlet规范中定义的,也就是说过滤器Filter的使用要依赖于Tomcat等容器,导致它只能在web程序中使用。而拦截器(Interceptor)是一个Spring组件,并由Spring容器管理,并不依赖Tomcat等容器,是可以单独使用的。不仅能应用在web程序中,也可以用于Application、Swing等程序中
3.触发时机不同:过滤器是在请求进入容器后,但在进入servlet之前进行预处理,请求结束是在servlet处理完以后。拦截器是在请求进入servlet后,在进入Controller之前进行预处理的,Controller中渲染了对应的视图之后请求结束。
二、过滤器、拦截器与AOP的联系:过滤器、拦截器的核心思想与AOP一致,但是在实现技术上没有本质联系。
三、监听器:与上述两者并没有联系,并且功能也完全不同。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星