Java Servlet のライフサイクルとは何ですか?
Javaサーブレットのライフサイクルとは、サーブレットが生成されると消滅するまでの全体像のことです。 以下に、そのライフサイクルにおける重要な段階を示します。
- 読み込みとインスタンス化:サーバーが起動すると、web.xml ファイル内の設定情報に基づいて、サーブレットが読み込まれ、インスタンス化されます。各サーブレットには固有のインスタンスがあります。
- コンテナは、サーブレットのインスタンス化後にその init() メソッドを呼び出すことで初期化します。このメソッドでは、コンフィグレーションファイルの読み込み、データベース接続の確立など、必要な初期化操作を実行できます。
- サービス:リクエストがサーバーに届くと、コンテナはリクエストを処理するための新しいスレッドを作成します。各リクエストは、リクエストのタイプ(GET、POSTなど)に応じて、サーブレットのservice()メソッドを呼び出し、対応する操作を実行します。
- デストラクション: サーバのシャットダウンやWebアプリケーションのアンインストール時に、コンテナはServletのdestroy()メソッドを呼び出し、デストラクションを行います。このメソッドでは、データベース接続のクローズ、リソースの開放などのクリーンアップ操作を実行できます。
init()とdestroy()メソッドはサーブレットのライフサイクル全体で1度だけ呼び出されるのに対し、service()メソッドはさまざまなリクエストを処理するために複数回呼び出されることが注意されます。