tomcat如何启动

tomcat如何启动

ID:40755212

大小:33.00 KB

页数:4页

时间:2019-08-07

tomcat如何启动_第1页
tomcat如何启动_第2页
tomcat如何启动_第3页
tomcat如何启动_第4页
资源描述:

《tomcat如何启动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、解读tomcat(二):tomcat是如何启动的?-annegu-JavaEye技术网站默认分类2009-06-2608:46:15阅读592评论0字号:大中小订阅/***作者:annegu*日期:2009-06-16*/对于engine,host,context来说,它们都属于容器,当接收到客户端请求的时候,请求会被传递到容器中,在一个容器中处理完毕之后,会被传递给下一个容器处理。因此,我们可以这样理解tomcat,总的来说,tomcat就是一种自上而下,一个容器里面又嵌套包含了另一个子容器的结构。所以,在tomcat启动

2、的时候,我们也可以想象,它必定要先启动父容器,然后再启动子容器,在启动每一层容器的时候,还会启动容器中的一些相关组件,当所有的容器与组件都安装启动完毕,那么tomcat就启动完毕了。因此,很容易理解,tomcat启动的第一步就是进行容器的装配,就是把父容器和子容器拼装起来,并且安装上相关的组件,这很像一个车间装配的过程。当一切装配齐全,机器已经在各个工人的手中完全组装好了,那么接下来的一步,我们只需要按下开关,机器就可以工作啦。多么方便哪!1、一切事情的起点都源于org.apache.catalina.startup.Boo

3、tstrap的“引导”。Bootstrap负责对catalina的配置文件路径进行了一番指导,指定了三种类型的classLoader,接下来catalina就可以用这三种类型的classLoader来负责装配容器了。然后Bootstrap用反射机制调用了org.apache.catalina.startup.Catalina的process方法,引导catalina进行启动。2、Catalina的工作首先是用digester来装配各个容器与组件(degester是Jakarta子项目Commons下的一个模块,支持基于规则的

4、对任意XML文档的处理,提供了一种将XML与Java对象进行映射的方便方法),这个装配就像我们上面说的那样,就是把server下的service进行安装,然后依次把service下的engine,host,context这些容器以及容器中的各种组件按照父子关系一一拼装。这些配置文件的来源都是Bootstrap之间就已经告知了的。在这里它只负责组装。接着,catalina会对server进行初始化工作,主要就是把service中配置的connector进行初始化(HTTP与AJP)。然后调用server的start方法,启动t

5、omcatserver。最后,为server注册一个hook程序,检测当servershutdown的时候,关闭tomcat的各个容器。3、进入server的start方法。启动server的容器的三个lifecycle事件:BEFORE_START_EVENT,START_EVENT,AFTER_START_EVENT。启动server的子容器service。4、进入service的start方法。启动engine与connector。5、下面就开始进入engine了。之前说过,engine,host与context都是容

6、器,它们都继承自Container类。它们既然都是一种container,那么在处理手法上一定又很多类似的地方,因此,tomcat使用了ContainerBase这个类,把它作为engine,host与context的父类,让这些容器都可以通过super.start()方法来达到大部分主要逻辑的复用。那么,我们首先就来看一下这个ContainerBase中都做了些什么,也就可以知道容器大致都怎么处理请求的。a)触发启动前事件(BEFORE_START_EVENT)。b)设置标签,表示该容器已启动。c)启动容器中的各个组件,如

7、loader,logger,manager,cluster,realm,resources等。d)启动当前容器的子容器。e)启动当前容器的管道pipeline*。f)触发启动中事件(START_EVENT)。g)触发启动后事件(AFTER_START_EVENT)。*:pipeline:当一个容器要把从上一级传递过来的需求转交给子容器的时候,它就会把这个需求放进容器的管道(pipeline)里面去,这个管道里面呢有多个阀门机关(value),而需求在管道里面流动的时候,就会被管道里面的各个阀门拦截下来,只有满足了过关的要求,

8、阀门才会放行。比如管道里面放了两个阀门,第一个阀门叫做“access_allow_vavle”,也就是说需求流过来的时候,它会看这个需求是哪个IP过来的,如果这个IP已经在黑名单里面了,OK,立马拦截,这个需求最远就只能走到这里了,不可能再往下走了!第二个阀门叫做“defaul_acces

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。