@634

Servlet - ライフサイクル

Advertisement

ライフサイクル

サーブレットのライフサイクルを、サーブレットコンテナの状態遷移と共に示す。
  1. サーブレットコンテナの起動
    基本的に、この時点ではサーブレットのインスタンスは生成されていない。
  2. サーブレットのロード
    クライアントからの最初の要求により、サーブレットをサーブレットコンテナにロードする。一度ロードされたサーブレットはメモリ上に駐在する。
  3. サーブレットの実行
    サーブレットが実行される。
  4. サーブレットのアンロード
    サーブレットコンテナの終了などにより、サーブレットのインスタンスがアンロードされる。

ライフサイクルメソッド

サーブレットにはライフサイクルに対応したメソッドが存在する。

ロード、アンロード時のメソッド

ロード時に init() メソッドが実行され、アンロード時に destroy() メソッドが実行される。

実行時のメソッド

HttpServlet には doXXX() という名前のメソッドが7種類定義されていて、リクエストの種類によって適切なメソッドが実行される。

参考:javax.servlet.http.HttpServlet(リンク先:Ja-Jakartaプロジェクト)

ライフサイクルメソッドサンプルコード

import javax.servlet.*;
import javax.servlet.http.*;

public class SampleServlet extends HttpServlet {
    // ロード時の処理
    public void init() throws ServletException {
        System.out.println("init");    
    }

    //HTTP Get リクエストの処理
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException{
        System.out.println("doGet");
    }

    // アンロード時の処理
    public void destroy(){
        System.out.println("destroy");
    }
}
今回、このサーブレットをリクエスト get で呼び出すため、doGet() メソッドも実装した。そして、このサーブレットを http://localhost/Sample/sample/ という URL に対応付けた。では、実際にサーブレットを実行してみる。

実行結果※カッコ内はサーブレット以外の動作
(コンテナの起動)

(サーブレットを呼び出す)
init
doGet

(サーブレットを呼び出す)
doGet

(サーブレットを呼び出す)
doGet

(コンテナを終了)
destroy()
上記のライフサイクル通りの実行結果を得ることができた。

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ
   UIコレクションギャラリー

サイト検索

Google

Web サイト内

Y!ログール