サーブレットのライフサイクルには、次の図のようにいくつかの段階があります。
初期化段階で、JRun はサーブレットの init
メソッドを使用します。init
メソッドは一度だけ呼び出されます。したがって、サーブレットを呼び出すたびに貴重なリソースを割り当てる必要はありません。init
メソッドは、サーブレットがそのライフサイクル中に必要とするリソースを割り当てるために使用します。JRun は、起動時 (JMC 内で有効にされている場合) または最初のクライアント要求を受け取ったときに init
メソッドを呼び出します。
サーブレット クラス内で init
メソッドを書き換える必要はありません。初期化時に何らかのタイプの処理を実行する場合にのみ、このメソッドを書き換えます。
サーブレットが受信したすべての要求を処理したとき、要求処理段階に入ります。JRun は、サーブレットがどのクラスを展開したかによって、要求を service
メソッド、または do
Xxx メソッドへ送ります。
GenericServlet
を展開した場合、処理は service
メソッドを書き換えることによって実行されます。
HttpServlet
を展開した場合、処理は想定している HTTP 要求タイプに対応する do
Xxx メソッドを書き換えることによって実行されます。たとえば、サーブレットで HTTP GET
要求を処理するdoGet
メソッドをコーディングします。
これらのクラスの詳細については、227 ページの第 20 章「Java サーブレット API によるプログラミング」 を参照してください。
メモ JRun は、各サーブレットのインスタンスをそのクラス名ではなく、エイリアスに よって管理します。サーブレットのエイリアスを定義していない場合、JRun は動的に エイリアスを作成します。エイリアスを登録名または基準名とも言います。 |
JRun サーバーをシャットダウンしたとき、または JRun サーバーが変更されたサーブレットを再ロードしたとき、JRun はサーブレットをメモリからアンロードします。アンロード時に、サーブレットは破棄段階に入ります。破棄要求の開始時に、JRun は destroy
メソッドを呼び出します。destroy
メソッド内で、サーバーが使用していたリソースの割り当てを解放できます。destroy
メソッドが呼び出されると、クラスをガーベッジ コレクションに入れることができます。