サーブレットのライフサイクル
サーブレットのライフサイクルは、作成から破棄を通してプロセス全体として定義することができます。 以下は、サーブレットを追跡する手順です:
- サーブレットは、init()メソッドを呼び出すことによって初期化されます。
- サーブレットは、クライアントの要求を処理するためのサービス()メソッドを呼び出します。
- ()メソッドを終了する(エンド)を破壊呼び出すことによってサーブレット。
- 最後に、JVMのガベージコレクタのガベージコレクションによるサーブレット。
私たちはここで詳細にライフサイクルアプローチを説明しましょう。
init()メソッド
initメソッドは一度だけ呼び出されるように設計されています。 あなたが最初に後続の各ユーザーの要求はもはやコールで、サーブレットを作成するときに呼び出されます。 したがって、アプレットのinitメソッドのように、一回の初期化のために使用されます。
ユーザーがサーブレットURLへの最初の呼び出しに対応するサーブレットを作成しますが、あなたはまた、サーブレットを指定することができた場合、サーバが最初に起動したときにロードされます。
ユーザがサーブレットを呼び出すと、それはサーブレットのインスタンスを作成し、各ユーザの要求は、新しいスレッド、doGetメソッドまたはdoPostメソッドに適切な時間転送を生成します。 init()メソッドは、単純に作成したり、ライフサイクルサーブレット全体で使用されるいくつかのデータをロードします。
次のようにinitメソッドが定義されています。
公共ボイドは、init()は{ServletExceptionががスローされます //初期化コード... }
サービス()メソッド
サービス()メソッドは、主な方法は、実際のタスクを実行しています。 サーブレットコンテナ(すなわち、Webサーバ)がクライアントに戻し書き込むためのクライアント(ブラウザ)からのリクエストとレスポンスのフォーマットを処理するためのサービス()メソッドを呼び出します。
サーバは、サーブレット要求を受信するたびに、サーバは、新しいスレッドを生成し、サービスを呼び出すであろう。 サービスは、()メソッドは、HTTP要求の種類を(GET、POSTは、PUT、DELETEなど)をチェックし、適切な時期にdoGetメソッド、doPostメソッド、doPutメソッド、doDeleteメソッドを呼び出します。
以下は、この方法によって特徴付けられます:
公共ボイドサービス(ServletRequestの要求、 ServletResponseを応答) ServletExceptionが、IOExceptionが{スロー }
サービス()メソッドは、コンテナによって呼び出され、サービスメソッドは、適切なタイミングでのdoGet、doPostメソッド、doPutメソッド、doDeleteメソッドを呼び出します。 だから、あなたは何を行うには、サービスへの()メソッドを持っていない、あなただけのdoGet()またはdoPostメソッドを(オーバーライドするクライアントからの要求を入力する必要があります)することができます。
各サービス要求のdoGet()メソッドとdoPost()メソッドは、最も一般的に使用される方法です。 ここでこれらの2つの方法の特徴です。
doGet()メソッド
通常のリクエストされたURLから、またはMETHOD不特定のHTMLフォームからの要求をGET、それはdoGetメソッド()メソッドによって処理されます。
ます。public void doGetメソッド(HttpServletRequestのリクエスト、 HttpServletResponseの応答) ServletExceptionが、IOExceptionが{スロー } //サーブレットコード
doPost()メソッド
POSTリクエストは、特別に指定されたメソッドから来て、それがのdoPost()メソッドによって処理され、POST HTMLフォームです。
公共ボイドdoPostメソッド(HttpServletRequestのリクエスト、 HttpServletResponseの応答) ServletExceptionが、IOExceptionが{スロー } //サーブレットコード
破壊()メソッド
破壊()メソッドは、サーブレットのライフサイクルの終了時に呼ばれるように、一度だけ呼び出されます。 破壊()メソッドを使用するには、サーブレットのデータベース接続をオフにするバックグラウンドスレッドを停止し、リスト、またはディスクに書き込まれたクッキーカウンターをクリックして、および他の類似のクリーンアップ活動を実行することができます。
()メソッドを破壊するコールの後、サーブレットオブジェクトがガベージコレクションの対象としてマークされています。 次のように破壊する方法が定義されています。
公共ボイド(破壊){ //コードの終了... }
チャート
次の図は、一般的なサーブレットのライフサイクルアプローチを示しています。
- HTTPサーバは、サーブレットコンテナに委譲され、要求に到達する最初のものです。
- サーブレットをロードするサービス()メソッドを呼び出す前に、サーブレットコンテナ。
- そして、サーブレットコンテナは、複数のスレッド、サーブレットサービス()メソッドの単一のインスタンスでの実行の各スレッドによって生成された複数の要求を処理します。