此步骤在ContextConfig.configureStart()中实现
初始化主要干的事请:解析web.xml文件
web.xml描述的web应用信息,web应有的入口
首先找全局webxml,即tomcat/conf下的,,会有多个地方配置web.xml,此处未做过多了解,,工程下WEB-INF/web.xml
web.xml中的各种信息被存入WebXml对象中,包括servlet、filter、listener的创建
比如:servlet的
遍历WebXml对象,拿到servlet信息
for(ServletDel servlet : servlets.values){
Wrapper wrapper = context.createWrapper(); //servlet包装类
wrapper setXxx(servlet.getXxx());//将servlet的各种信息包装进wrapper的包装类
...
context.addChild(wrapper);
}
使用包装类的原因:包装类StandardWrapper 是tomcat容器的一部分,具有容器特征,
Servlet是web开发一个独立的开发标准,不应该强耦合在一起
除Servlet外,web.xml其他所有属性都被解析到Context中,
Context容器:运行web应用的真正容器,一个web应用对应一个context,容器配置属性由web.xml指定