相关视频学习:
提示信息 - 阿里云全球培训中心 - 官方网站,云生态下的创新人才工场
顺序关系:
提到在web.xml中各个元素的执行顺序是这样的,context-param-->listener-->filter-->servlet; 而拦截器是在Spring MVC中配置的,如果从整个项目中看,一个servlet请求的执行过程就变成了这样context-param-->listener-->filter-->servlet-->interceptor(指的是拦截器),为什么拦截器是在servlet执行之后,因为拦截器本身就是在servlet内部的,下面把所学和所总结的用自己的描述整理出来~。另外本文的项目框架是基于上篇文章Spring+SpringMVC+Mybatis+Maven搭建项目_Jintao_Ma的博客-CSDN博客 讲述的框架,下载路径:Maven+Spring+SpringMvc+Mybatis_mybatis监听器-Java代码类资源-CSDN下载。
三大组件:servlet、过滤器、监听器。
文章参考:
拦截器、过滤器区别:
执行顺序:
所有的请求都是先经过过滤器,最后离开过滤器,中间执行的拦截器的方法。拦截器是在dispatcherservlet这个servlet中执行的。
过滤器
1.在容器初始化时候被调用一次(filter的init方法)
2过滤器对几乎所有的请求起作用(每次请求过来,会调用dofilter方法)
3.过滤器不能访问action的上下文
4.过滤器依赖servlet容器
5.过滤器原理是基于函数回调
6.过滤器不能获取ioc容器中的各个bean,
拦截器
1.在action的生命周期中,拦截器可以被多次调用
2.拦截器只在action请求的时候起到作用
3.能访问action的上下文
4.不依赖servlet容器
5拦截器是基于java的反射机制。使用的是aop.
6.拦截器可以获取各个bean,往拦截器里注入service,可以调用它的业务逻辑。