web.xml是部署描述文件,它不是Spring所特有的,而是在Servlet规范中定义的,是web应用的配置文件。web.xml主要是用来配置欢迎页、servlet、filter、listener等以及定制servlet、JSP、Context初始化参数。
启动一个WEB项目时,容器(包括JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。
Spring容器技术通过web.xml与web容器耦合。读取Web.xml就可以获取Spring容器的初始化信息。
加载流程
context-param -> listener -> filter -> servlet
读取
创建全局共享的ServletContext【ServletContext是容器的宿主环境】
将
context-param配置
创建
org.springframework.web.context.ContextLoaderListener
listener配置
读取
org.springframework.web.filter.CharacterEncodingFilter
filter配置
如果系统中有
org.springframework.web.servlet.DispatcherServlet
servlet配置
总结:ServletContext是WebApplicationContext的底层支撑,所有的外界配置信息读到ServletContext中,然后再通过ContextLoaderListener触发Spring根上下文的初始化
加载细节