tomcatの起動プロセス


一、tomcatはorg.apache.catalina.startup.Bootstrapというクラスから起動できることを知っています.このタイプは2つのことをしました.
1、classloaderを指定する
2、Catalinaの起動を起動し、reflection反射技術を使用してorg.apache.catalina.startup.Catalinaのprocess()メソッドを呼び出し、パラメータを過去に渡す.public void process(String args[])
    Catalina.javaのprocess()はいくつかのことをします.    a:Digesterテクノロジーを使用してtomcatの各コンテナとコンポーネント(server.xmlファイルロード)をアセンブリします.    b:top levelのserverの初期化作業    c:Serverというコンテナから起動します.--次のステップに進みます(二)    d:サーバのためのhookプログラムを作成し、サーバが閉じたときにTomactコンテナ全体を閉じる    e:8005ポートを傍受し、shutdownを発行した場合、8005ポートのsocketを閉じる
二、起動容器
≪サーバー|Server|ldap≫:サーバー・コンテナ全体を表します.サーバー・コンテナの起動前、起動中、起動後イベントをトリガーし、イベント・プロセッサを実行します.    Server------>サーバのサブコンテナサービスを開始します(サービスを提供するコンポーネントを指定します.server.xmlで1つ以上構成できます).
  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container", 
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
    Service------>サブコンテナEngineを起動し、Connectorを起動します(各サービスには1つのEngineしかなく、複数のConnectorがあります)
Engineでは、すべてのコネクタが受信した顧客要求を処理するホスト名が指定されています.
Connectorはサービスのポート番号を定義し、お客様の要求を受け入れ、お客様に結果を返す責任を負います.    Engine---->Host(1つまたは複数、各Hostは1つの仮想ホストを表し、1つまたは複数のウェブアプリケーションを含むことができる)
    Host------>Context(各ContextはHost上で実行される単一のWebアプリケーションを表す.)    StandardContext.start()このContextコンテナを起動する方法はStandardHostによって呼び出されます.
    1、Loaderを指定し、デフォルトのorg.apache.catalina.loader.WebappLoaderを使用します.Loaderはこのcontextが使用するクラス、jarパッケージを指定します.    2、指定Manager.は通常、デフォルトのorg.apache.catalina.session.StandardManagerを使用します.Managerはセッションを管理するために使用されます.リクエストを取得すると、Requestにセッション属性があります.    3、Binding thread.ここまで来たら、class Loader交換が起こるはずです.以前はtomcatの下にあるすべてのclassとlib.が見え、次に現在のcontextの下にあるclassが見える必要があります.だからcontextClassLoaderを設定して、同時に古いClassLoaderを記録して、後で使うためです.    4、Loader.を起動して、このContextが具体的にどのclassesを使用するか、どのjarファイルを使用するかを指定します.reloadableがtrueに設定されている場合、classesの変化を監視するためにスレッドが起動し、変更があればContextを再起動します.    5、loggerを起動する    6、Context上のListenerをトリガし、Listenerの1つとしてContextConfigが起動する.ContextConfigはweb.xmlを構成するために使用される.例えば、このContextがどれだけサーブレットを持っているか、どれだけのFilterを持っているかは、ここでContextにインストールされています.        6.1、defaultConfig.各contextはtomcat/conf/web.xmlというファイルを構成しなければならない.            6.2、アプリケーションコンフィグは自分のWEB-INF/web.xmlファイルを配置する        6.3、validateSecurityRoles権限検証.通常、/adminまたは/managerにアクセスするには、ユーザーがadminまたはmanagerである必要があります.また、それらのリソースにアクセスできるリソースを制限することができますが、どのリソースにアクセスできないかを制限することができます.すべてここで実現したのです.        6.4、tldScan:どのラベルが必要かスキャンしてみましょう(tag lab)    7、managerを起動する    8、postWelcomeFiles()通常使用する3つの起動ファイルの名前:        index.html、index.html、index.jspはデフォルトでこのcontextに縛られています    9、listenerStart構成listener、Listenerを初期化    10、filterStartはfilterを構成し、Filterを初期化する    11、起動に;1;のサーブレット        順番は小さい頃から:1,2,3...最後は0        デフォルトでは、少なくとも次の3つのサーブレットが起動します.        org.apache.catalina.servlets.DefaultServlet           静的资源のサーブレットを処理します.どんなピクチャー、html、css、jsはすべて彼を探します        org.apache.catalina.servlets.InvokerServlet         サーブレットMappingをしていないサーブレットを処理します.        org.apache.jasper.servlet.JspServlet         JSPファイルを処理する    12、  識別contextが起動しました.
キーコードは後で追加されます.の