注文:
全体的に、ロード・シーケンスは、web.xmlです: <コンテキスト-param>の- > <リスナー> - > <フィルタ> - >の<servlet>。ここで、場合web.xmlのは、負荷への設定ファイル内の出現順に従って、同一の要素を表示されます。
プロセス:
簡単に言うとweb.xmlファイルをロードし、およそ。我々は、コンテナ(JBossの、Tomcatの、など)を含むプロジェクトのWebコンテナを起動すると。まず、このステップが完了すると、エラーなしで、このプロジェクトは、それが起動するように取得するときに、web.xml構成ファイルの設定を読みに行きます。
コンテナは二つのノードのweb.xml設定ファイルを読み込むことが第一であるとき、WEBプロジェクトを開始します。<context-param> </コンテキスト-param>のと <聞き手> </リスナー>
次に、コンテナのServletContext(アプリケーション)を作成し、このWebプロジェクトのすべての部分は、このコンテキスト内で共有されます。容器<コンテキスト-param>の</コンテキスト -param> キーなどの名前、値としては、格納されたキーと値のペアに変換するServletContextを。
コンテナが作成するクラスインスタンスを<リスナー> </リスナー>において、構成クラスベースパス<リスナクラスが>リスナーを作成するために、必要がありますリスナー初期化プロセスが開始Webアプリケーションが、システムが呼び出したときリスナーれる contextInitialized(この方法で得られたServletContextEvent引数)。
ServletContextの アプリケーション= ServletContextEvent.getServletContext()。
コンテキスト・パラメーターの値= application.getInitParameter(「コンテキストのparamキー」)。
コンテキスト-PARAMの値を取得した後、あなたは操作の一部を行うことができます。
例:データベースがオープンされる前に、これがされるプロジェクトを開始する場合があります(ドライバー、中の<context-param>の設定データベース接続URL、ユーザー、リスナークラスを使用して、データベース接続を初期化し、パスワード)。このモニターは、初期化の方法に加えて、それはまた、アプリケーションを閉じる前にリソースを解放するための方法を破壊し、クラスを記述することです。例えば:その場合、呼び出し、データベース接続を閉じる言うcontextDestroyed(ServletContextEventの引数)を、シャットダウンWebアプリケーションを、システムコール方法のリスナーが。
続いて、容器が読み出され、指定されたパスフィルタに応じてクラスをインスタンス化、<フィルター> </フィルタ>。
これらは完了しているWEBプロジェクトは完全に仕事を開始していない時間。システムが持っている場合は、サーブレットをサーブレットが最初の要求がインスタンス化されたときに開始され、そして容器は、一般的に破壊されないであろう、それは複数のユーザにサービス要求することができます。だから、上記の後半の数に比べて優れたサーブレットの初期化。
したがって、ロード処理に応じて見ることができ、負荷の順序は、web.xmlである: >> <サーブレット- > <リスナー> - - > <フィルター> <コンテキストPARAM>。ここで、場合web.xmlのは、負荷への設定ファイル内の出現順に従って、同一の要素を表示されます。
:ソースから飲むhttps://www.cnblogs.com/shoshana-kong/p/10682662.html