サーブレットクラスは、javax.servlet.Servlet インターフェイスを実装する必要があります。サーブレット API には、このインターフェイスを実装し、Java サーブレットを作成するときに拡張できる次の 2 つのクラスが含まれています。
GenericServlet プロトコルに依存しない基本サーブレット機能を提供します。このクラスを拡張して、HTTP 以外のサービスをコーディングします。ただし、ほとんどの場合クラスは HttpServlet から拡張します。
HttpServlet GenericServlet を拡張して HTTP 特有の機能を追加します。ほとんどのクラスが HttpServlet を拡張します。また、この章では、クラスで HTTP 処理を実行することを想定しています。
次の図で示すように、サーブレット API は、java.io、java.lang、javax.servlet、javax.http.servlet パッケージにあるクラスやインターフェイスを使用します。
サーブレット API のクラス、インターフェイス、および例外の詳細については、『Servlet API JavaDocs』を参照してください。
次の図で示すように、サーブレットのライフサイクルにはいくつかのフェーズがあります。
初期化フェーズで、JRun はサーブレットの init メソッドを呼び出します。init メソッドは一度だけ呼び出されます。したがって、JRun がサーブレットを呼び出すたびに貴重なリソースを割り当てる必要はありません。init メソッドは、サーブレットがライフサイクル全体で必要とするリソースを割り当てるために使用します。JRun は、起動時 (JMC 内で有効にされている場合) や最初のクライアントリクエストを受け取ったときに init メソッドを呼び出します。
サーブレットクラス内で init メソッドをオーバーライドする必要はありません。初期化時に何らかのタイプの処理を実行する場合にのみ、このメソッドをオーバーライドします。
サーブレットが受信したすべてのリクエストを処理するとき、リクエスト処理フェーズに入ります。JRun は、GenericServlet をオーバーライドする場合は、service メソッドにリクエストを転送し、HttpServlet クラスをオーバーライドする場合は doXxx メソッドにリクエストを転送します。
JRun サーバをシャットダウンするときや、変更されたサーブレットを JRun サーバがリロードするときは、JRun はサーブレットをメモリからアンロードします。アンロード時に、サーブレットは廃棄フェーズに入ります。廃棄リクエストの開始時に、JRun は destroy メソッドを呼び出します。destroy メソッド内で、サーブレットが使用していたリソースの割り当てを解放できます。JRun が destroy メソッドを呼び出すと、クラスはすぐにガーベッジコレクションを実行できます。