Spring为父容器,SpringMVC为子容器,子容器可以访问父容器,父容器不可以访问子容器。
所以可以有多个子容器,有多个父容器。
一. servlet容器
1. web项目执行顺序
- 启动web项目后,web容器首先找web.xml文件,读取这个文件;
- 容器会创建一个 ServletContext ( servlet 上下文),整个 web 项目的所有内容都将共享这个上下文;
- 容器将转换为键值对,并交给 servletContext(),context-pram使用上下文初始化参数;
- 容器创建监听器;
- 容器加载filter,创建过滤器;
- 拦截器(在spring中,原始servlet中没有拦截器);
- 容器加载servlet,加载顺序按照 Load-on-startup 来执行。
- 因此它的完整加载顺序就是 :ServletContext -> context-param -> listener-> filter -> servlet