ホームページ  >  記事  >  Java  >  Java のサーブレットのライフサイクルに関する情報を共有する

Java のサーブレットのライフサイクルに関する情報を共有する

黄舟
黄舟オリジナル
2017-07-21 16:29:141408ブラウズ

この記事では主にサーブレットのライフサイクルの関連情報を詳しく紹介しますので、興味のある方は参考にしてください

この記事では、サーブレットのライフサイクルの関連情報を参考までに共有します。具体的な内容は次のとおりです。以下に続きます

1. サーブレットのライフサイクル: サーブレットのロード ---> インスタンス化 ---> サービス ---> 破棄。
2.init(): サーブレットのライフサイクルにおいて、init() メソッドは 1 回だけ実行されます。これはサーバーがサーブレットをロードするときに実行され、サーブレット オブジェクトの初期化を担当します。サーバーは、サーブレットの起動時、またはクライアントが初めてサーブレットにアクセスしたときにサーブレットをロードするように構成できます。サーブレットにアクセスするクライアントの数に関係なく、init() が繰り返し実行されることはありません。
3.service(): これはサーブレットの中核であり、顧客のリクエストに応答する責任を負います。クライアントが HttpServlet オブジェクトを要求するたびに、オブジェクトの Service() メソッドが呼び出され、「要求」 (ServletRequest) オブジェクトと「応答」 (ServletResponse) オブジェクトがパラメータとしてこのメ​​ソッドに渡されます。 Service() メソッドは HttpServlet にすでに存在します。デフォルトのサービス関数は、HTTP リクエスト メソッドに対応する do 関数を呼び出します。
4.destroy(): 1 回だけ実行されます。このメソッドは、サーバーが停止し、サーブレットがアンインストールされるときに実行されます。サーブレット オブジェクトがライフ サイクルを終了すると、占有されていたリソースを解放する必要があります。サーブレットは、service() メソッドの実行時に他のスレッドを生成する場合があるため、destroy() メソッドの呼び出し時にこれらのスレッドが終了または完了していることを確認する必要があります。

Tomcat とサーブレットの仕組み:

手順:

1.Web クライアントが HTTP リクエストをサーブレット コンテナ (Tomcat) に送信します
2. サーブレット コンテナが Web クライアントからリクエストを受信します
3. サーブレット コンテナRequest オブジェクトを作成し、Web クライアントによって要求された情報をこのオブジェクトにカプセル化します。
4. Servlet コンテナは Response オブジェクトを作成します。
5. Servlet コンテナは HttpServlet オブジェクトのサービス メソッドを呼び出し、Request オブジェクトと Response オブジェクトをパラメータとして Servlet オブジェクトに渡します。
6.Servlet は、Request オブジェクトの関連メソッドを呼び出して、HTTP リクエスト情報を取得します。
7.HttpServlet は、Response オブジェクトの関連メソッドを呼び出して応答データを生成します。
8. Servlet コンテナは HttpServlet の応答結果を Web クライアントに渡します。

サーブレットの動作原理:

1. まず、サーブレットが顧客のリクエストを受信して​​応答するプロセスを簡単に説明します。まず、顧客がリクエストを送信し、サーブレットはそれに応答するために service() メソッドを呼び出します。リクエストはソース コードから確認できます。service() メソッドはリクエスト メソッドと一致し、doGet、doPost、およびその他のメソッドの呼び出しを選択し、対応するメソッドを入力してロジック層メソッドを呼び出し、顧客への応答を実装します。 。 Servlet インターフェースや GenericServlet には doGet() や doPost() などのメソッドはありません。これらのメソッドはすべてエラー情報を返します。したがって、Servlet を定義するたびに、 doGet を実装する必要があります。 doPost およびその他のメソッド。
2. カスタマイズされたサーブレットはすべて、サーブレット インターフェイスを実装する必要があります。サーブレット インターフェイスには 5 つのメソッドが定義されており、そのうちの 3 つの重要なメソッドは、前述の init()、service()、destroy( です。 ) メソッド。 GenericServlet は、どのプロトコルにも固有ではない一般的なサーブレットであり、サーブレット インターフェイスを実装します。 HttpServlet は GenericServlet を継承しているため、HttpServlet は Servlet インターフェイスも実装します。したがって、Servlet を定義するときは、HttpServlet を継承するだけで済みます。
3. Servlet インターフェースと GenericServlet はどのプロトコルにも固有ではありませんが、HttpServlet は HTTP プロトコルに固有のクラスであるため、service() メソッドは HttpServlet に実装され、リクエスト ServletRequest と ServletResponse は HttpRequest と HttpResponse に強制されます。

サーブレット オブジェクトを作成する時間:

1. サーブレット コンテナーが開始されたら、web.xml 構成ファイル内の情報を読み取り、指定されたサーブレット オブジェクトを構築し、ServletConfig オブジェクトを作成し、ServletConfig を呼び出します。パラメータとしてのオブジェクト サーブレット オブジェクトの init メソッド。
2. サーブレット コンテナの起動後: 顧客が初めてサーブレットにリクエストを出します。サーブレット コンテナは、指定されたサーブレット オブジェクトがメモリ内に存在するかどうかを判断し、存在しない場合は、HttpRequest を作成します。顧客の要求に従って HttpResponse オブジェクトを呼び出し、それによって Servlet サービス メソッドを呼び出します。
3.サーブレット サーブレット コンテナは、起動時にサーブレットを自動的に作成します。これは、web.xml ファイル内のサーブレットに設定された 属性によって決まります。このことから、同じタイプのサーブレット オブジェクトがサーブレット コンテナ内にシングルトンとして存在していることもわかります。


りー

以上がJava のサーブレットのライフサイクルに関する情報を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。