Servlet容器的启动过程--Tomcat为例子

来源:互联网 发布:forge软件 编辑:程序博客网 时间:2024/06/05 11:14

在Tomcat的容器等级中,Context容器直接管理Servlet在容器中的包装类Wrapper,所以Context容器如何运行将直接影响Servlet的工作方式.而且一个Context对应一个Web工程.

添加一个Web应用时将会创建一个StandardContext容器,并且给Context容器设置必要的参数url和path,一个是访问路径而另外一个是应用的实际物理路径,这两个参数就是Tomcat中的配置参数.其中最重要的一个配置是ContextConfig,它负责整个Web应用配置的解析工作.最后还要把这个Context容器加到父容器Host中.接下来就可以启动Tomcat了.

Tomcat的启动逻辑是基于观察者设计模式设计的,所有的容器都会继承Lifecycle接口,它管理着容器的整个生命周期,所有容器的修改和状态的改变都会由它去通知已经注册的观察者(Listener).



ContextConfig的init方法将会主要完成的工作有:

1.创建用于解析XML配置文件的contextDigester对象.

2.读取默认context.xml配置文件

3.读取默认Host配置文件

4.读取默认Context自身的配置文件

5.设置Context的DocBase(应用的物理路径)



ContextConfig的init方法完成后,Context容器就会执行startInternal方法.主要包括以下几个部分:

1.创建读取资源文件的对象

2.创建ClassLoader对象

3.设置应用的工作目录

4.启动相关的辅助类,如logger

5.修改启动状态,通知感兴趣的观察者(Web应用的配置)

6.子容器的初始化

7.获取ServeletContext并且设置必要的参数

8.初始化"load on startup"的Servlet

Web应用的初始化工作是在ContextConfig的configureStart方法中实现的,应用初始化就是要解析web.xml文件.

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 画油画时把颜料染在衣服上怎么办 买的布衣柜少了一个管子怎么办 小2球刚好进2球怎么办 大2球刚好进2球怎么办 大球2进了2球怎么办 身上剩的几百块钱有掉了怎么办 刚买一天的手机电板有问题怎么办 宝宝长湿疹穿少了就感冒怎么办 照片跟视频被孩子删了怎么办 老公总是说一些不开心的话题怎么办 孩子沉迷手机篮球课不爱去怎么办 坐久了屁鼓会长疮怎么办 套胶的胶皮与海绵分离怎么办 换肾15天了沒尿怎么办? 妻子的绒癌怎么办?——急人! 孕妇结石掉在输尿管有血尿怎么办 吃葯时药片沾在食管臂上怎么办 八十多了膀胱癌手术复发了怎么办 尿蛋白和尿隐血2个加怎么办 小肝癌手术后两个月又复发了怎么办 膀胱癌血尿堵塞尿道和尿管怎么办 肾炎腰疼一条腿疼尿血怎么办 孕晚期尿常规检查尿蛋白高怎么办? 腰开车疼的不会动了怎么办 小孩跑完满头大汗就咳嗽怎么办 小孩剧烈咳嗽喘吃了药不管用怎么办 做什么事都有点轻微的手抖怎么办 见到喜欢的人做事情就手抖怎么办 做了尿结石手术还尿血怎么办 宝宝十一个大运动发展缓慢怎么办 一岁八个月宝宝肚里有蛔虫怎么办 孕妇5个月了缺碘怎么办 4个月婴儿折了下腰怎么办 签了居间合同网签合同有异议怎么办 魅族3s手机返回键失灵怎么办 英语冠词和名词的关系用不好怎么办 炸好了的肉梭子不脆了怎么办 跑步的时候胸抖的疼怎么办 小区内安装了乒乓球桌扰民了怎么办 裁判出示红牌如果球员不走怎么办 高三文化课不好又没有特长怎么办