1. はじめに: サーブレット プログラミングは、javax.Servlet および javax.servlet.http という 2 つのパッケージのクラスとインターフェイスを通じて実装されます。すべてのサーブレットは、このインターフェイスを実装するか、クラスを継承する必要があります。このインターフェースを実装するものです。
2. サーブレットインターフェースには 5 つのメソッドがあります:
public void init(ServletConfig config) throws ServletException;
public void service(ServletRequest request, ServletResponse response) throes ServletException, IOException;
public void destroy( );
public ServletConfig getServletConfig();
public String getServletInfo();
3. サーブレットのライフサイクル メソッド: init、service、destroy
(1) init: Servlet クラスが初期化された後、 init メソッドはサーブレット コンテナによって呼び出されます。 init メソッドは 1 回だけ呼び出され、サーブレットがサービスにロードされたことを示します。サーブレットがリクエストを正常に受信するには、init メソッドが正常に完了する必要があります。サーブレット プログラマは、このメソッドをオーバーライドして、シェルフ、データベース ドライバ、値の初期化など、一度だけ実行する必要がある初期化コードを作成できます。それ以外の場合、メソッドは空です。
(2) サーブレット、サーブレット コンテナはサーブレット コンテナへのサービス メソッドを呼び出します。このメソッドは、ServletRequest パラメータと ServletResponse パラメータを受け取り、クライアントのリクエスト パラメータをサーブレットに渡すために使用されます。サーブレット応答のカプセル化を担当します。サーブレットのライフサイクル中に、service() メソッドが複数回呼び出されます。
(3) 破棄。サーバーからサーブレット インスタンスを削除するために使用されます。これは通常、サーブレット コンテナーがシャットダウンするとき、またはサーブレット コンテナーに空きメモリが必要な場合、およびすべてのサーブレット コンテナーのサービス メソッドが終了した場合、またはサーブレット コンテナーが終了した場合にのみ使用されます。このメソッドが呼び出されるとタイムアウトになります。サーブレット コンテナが destroy メソッドを呼び出した後は、同じサーブレット内で service メソッドが再度呼び出されることはありません。destroy メソッドは、メモリ、ファイル ハンドル、スレッドなどの占有されているリソースをクリーンアップし、永続的なリソースが存在することを確認する機会を提供します。ローカリゼーション状態は、サーブレットのメモリの現在の状態と同期されます。
4. 各サーブレットのHTTPリクエストに対するサーブレットコンテナの動作プロセス
(1) 初めてサーブレットを呼び出すとき、サーブレットクラスをロードし、サーブレットのinitメソッドを呼び出します(1回のみ)
( 2) リクエストごとに、javax.servlet.ServletRequest インスタンスと javax.servletServletResponse インスタンスを構築します。
(3) サーブレットのサービスメソッドを呼び出し、ServletRequest オブジェクトと ServletResponse オブジェクトを同時に渡します。
(4) サーブレットクラスがクローズされたら、サーブレットの destroy メソッドを呼び出し、サーブレットクラスをアンロードします。
以上がTomcat - シンプルなサーブレットコンテナの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。