您的位置:首页 > 运维架构 > Tomcat

《how tomcat work》 搬运工 Chapter 12: StandardContext

2015-10-11 11:52 591 查看
一个context代表一个web网站,一个context包含多个wrappers。这个章节介绍了catalina的standardContext。

一、StandardContext Configuration

standardContext Configuration是配置standardContext的。它会读取web.xml以便让standardcontext配置好。StandardContext Configuration会在lifecycle listener上实现,以便在standardContext启动时完成配置,如果失败则不会处理请求

二、StandardContext Class's Constructor

public StandardContext() {
super();
pipeline.setBasic(new StandardContextValve());
namingResources.setContainer(this);
}


 构造函数最重要的就是对pipeline设置standardContextValve了。

三、Starting StandardContext

start()方法主要是:

启动BEFOTE_START event

设置availability 属性为false

设置configured 属性为false

设置resources

设置loader

设置manager

设置mapper

start及将其他组件和StandardContext联系起来

start子containers(wrappers)

start pipeline

start manager

启动START event.这里会设置configuration

在配置成功后,检查configured的属性,如果是true则,调用postWelcomePages函数,加载那些需要提前加载的子wrappers

启动AFTER_START event.

四、Invoke Method

invoked(Request request, Response response)调用时会想检查是否这web application是否被重新加载。

五、Support for Reloading

在tomcat4中,web的重新加载是依靠standardContext中的WebappLoader实例,WebappLoader一个线程检查是否需要重新加载,只需要启动这个线程就可以了。

因为每一个像这样的方法都会开启一个线程,这样会导致资源的消耗,所以在tomcat5中则用backgroundProcess 方法,而处理都只用一个线程。

tomcat5会在基类,baseContainer中创建一个ContainerBackgroundProcessor实例,并开启这个实例,并将一个Container调用他的backgroundProcess 方法和调用他子Container的backgroundProcess 方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: