1.4 サーブレットのライフサイクルの目的とイベントシーケンスを説明する
ナビゲーションに移動
検索に移動
目次
サーブレット
ライフサイクル
クラス図
サーブレットクラスのロードとインスタンス化
サーブレットロードの順序
- サーブレットコンテナは、起動時に配備記述子(web.xml)を探す
- 配備記述子(web.xml)のサーブレットエントリには、サーブレット名とJavaクラス名が併記されている
- サーブレットコンテナはClass.forName(className).newInstance()を使用してサーブレットのインスタンスを生成する
- サーブレットはこの時点でロード状態となる
- サーブレットクラスにデフォルトコンストラクタが必要
initメソッドの呼び出し
サーブレットは、init(ServletConfig) メソッド内で、初期化処理を行う。
- サーブレットは、サーブレットコンテナによりデフォルトコンストラクタを利用して、インスタンス化される
- サーブレットを初期化したい状況において、コンストラクタは利用できない(デフォルトコンストラクタが使用される)
- サーブレットコンテナは、サーブレットをロード後、サーブレットの初期化のためにServlet.init(ServletConfig)メソッドを呼び出す
- ServletConfigオブジェクトには、配備記述子(Web.xml)で指定された初期化パラメータが含まれる
serviceメソッドの呼び出し
サーブレットのインスタンス初期化が完了後、サーブレットコンテナは、サーブレットあてのリクエストを、
Servlet.service(ServletRequest, ServletResponse)
へディスパッチする
destroyメソッドの呼び出し
- サーブレットコンテナは、サーブレットが不要になったと判断したら、インスタンスのServlet.destroy() メソッドを呼び出す
- この状態になると、あとはアンロード状態にしか遷移できない
1.3 HttpServletレスポンスのインタフェースを使用して、以下のコードを書き出す 2.1 Webアプリケーションのファイルとディレクトリ構造を構築する
SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)
© 2006 矢木浩人