Tomcat启动分析

来源:互联网 发布:js点击超链接弹出窗口 编辑:程序博客网 时间:2024/06/05 02:21

一、启动文件。

 

       startup.bat 用于windows系统,startup.sh 用于linux系统。

startup.bat,catalina.bat都可启动,startup可直接双击,而catalina需通过DOS窗口,startup文件说白了就是调用catalina进行启动的。

 

二、启动过程

 

    1、org.apache.catalina.core.AprLifecycleListener init 

    2、org.apache.coyote.http11.Http11Protocol init 
               初始化http11 获得Connector对象 
    3、org.apache.catalina.startup.Catalina load 
              初始化启动进程 
    4、org.apache.catalina.core.StandardService start 
                 启动service 
    5、org.apache.catalina.core.StandardEngine start 
               启动engine 
    6、org.apache.catalina.core.ApplicationContext log 
                  ContextListener: contextInitialized() 初始Context上下文 
    7、org.apache.catalina.core.ApplicationContext log 
                  SessionListener: contextInitialized() 初始Session 
    8、Starting Coyote HTTP/1.1 on http-8080 
                 启动Connector 
    9、org.apache.jk.common.ChannelSocket init 
                  JK: ajp13 listening on /0.0.0.0:8009 
   10、org.apache.jk.server.JkMain start 
                  Jk running ID=0 time=0/47  config=null 
   11、org.apache.catalina.startup.Catalina start 
            tomcat启动完成 
      经过这么多的过程tomcat总算是启动来了.其中我们最应该了解和知道的是第六步初始化Context.那么tomcat是如何初始化Context呢.要想知道答案,我们不得不来看看web.xml. 
*******Context上下文的初始化 
1、<context-param></context-param> 初始context时的一些参数 
2、加载listener 
3、加载filter 
4、加载servlet(load-on-startup) 
listener filter servlet在初始化时加载,这些servlet是基础的servlet,为系统后台的运行提供服务.listener和filter可以看做是特殊的servlet. 
servlet的初始化分为两个时机:初始化context时初始化、在需要调用时初始化。在初始化context时初始化的servlet,我们需要指定它的load-on-startup(数值越小,越先初始化) 
*********在第七步初始化完session,如果有spring的配置文件,这时候会加载srping的配置文件,初始化spring ioc容器(会初始化所有的singleton="true"的bean)

 
原创粉丝点击