public interface Servlet
サーブレットはウェブサーバーで動く小さなJavaのプログラムです。 サーブレットは通常、HTTP(HyperText Transfer Protocol)を通じてウェブクライアントからリクエストを受け取りレスポンスを返します。
このインターフェースを実装するために一般的なサーブレットの場合はjavax.servlet.GenericServletを継承するか、
HTTPに特化したサーブレットの場合はjavax.servlet.http.HttpServletを継承することができます。
このインターフェースは、サーブレットを初期化する、リクエストを処理する、サーブレットをサーバーから取り除くメソッドが定義されています。 これらはライフサイクルメソッドとして知られており、以下のような順番で呼び出されます。
initメソッドにより初期化されます。
serviceメソッドが実行されます。
destroyメソッドにより終了処理が行われ、その後、ガーベッジコレクションとファイナライズされます。
このインターフェースではライフサイクルメソッドに加えてgetServletConfigを提供しています。
これはサーブレットが起動時の情報を使用するために使うことができます。
また、getServletInfoで作者やバージョン、コピーライトなどのサーブレット自身についての基本的な情報を返すことが許されます。
GenericServlet,
HttpServlet| 修飾子とタイプ | メソッドと説明 |
|---|---|
void |
destroy()
サーブレットがサービスから取り除かれるときにサーブレットコンテナにより呼び出されます。
|
ServletConfig |
getServletConfig()
ServletConfig のオブジェクトを返します。 |
String |
getServletInfo()
サーブレットの情報を返します。
|
void |
init(ServletConfig config)
サーブレットがサービスに組み込まれるときにサーブレットコンテナにより呼び出されます。
|
void |
service(ServletRequest req,
ServletResponse res)
サーブレットがリクエストに応答できるようにサーブレットコンテナによって呼び出されます。
|
void init(ServletConfig config) throws ServletException
サーブレットコンテナはサーブレットのインスタンスを生成した後にinitメソッドを一回だけ呼び出します。
initメソッドはサーブレットがリクエストを受け取る前に正常に完了しなければいけません。
以下の場合にはサーブレットコンテナはサーブレットを実行状態にすることができません。
initメソッドがServletExceptionを投げた
initメソッドがウェブサーバーで定義した時間内に処理を終了しない
config - サーブレットの設定や初期化パラメーターが含まれる ServletConfig オブジェクトServletException - サーブレットの通常の処理で例外が発生したUnavailableException,
getServletConfig()ServletConfig getServletConfig()
ServletConfig のオブジェクトを返します。これにはサーブレットを初期化するためのパラメーターが入っています。
このServletConfig のオブジェクトは init に渡されたものが返されます。
このインターフェースの実装は ServletConfig のオブジェクトを格納しこのメソッドが返すようにします。
このインターフェースを実装している GenericServlet クラスではすでにこれを行っています。
ServletConfig のオブジェクトinit(javax.servlet.ServletConfig)void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
このメソッドはサーブレットのinit()メソッドが正常に完了した場合のみ呼び出されます。
レスポンスのステータスコードはサーブレットがエラーをスローまたは送信するために常に設定するべきです。
サーブレットは通常、複数のリクエストを同時に処理できるようにサーブレットコンテナ内でマルチスレッドで動作します。 開発者はファイルやネットワークコネクション、サーブレットのクラスやインスタンス変数などの共有リソースへのアクセスを同期させる必要があります。 マルチスレッドプログラミングに関する詳細な情報は the Java tutorial on multi-threaded programmingを参照してください。 訳注:原文はリンクが切れたままになっているので今のJavaのチュートリアルのページだとLesson: Concurrencyが良さそう。
req - クライアントのリクエストが含まれるServletRequestのオブジェクトres - サーブレットのレスポンスが含まれるServletResponseのオブジェクトServletException - サーブレットの通常の処理で例外が発生したIOException - I/Oの例外が発生したString getServletInfo()
このメソッドが返す文字列はプレーンテキストにして、あらゆる種類のマークアップ(HTML、XMLその他)で装飾しないほうがよいです。
Stringvoid destroy()
serviceメソッドが終了したかタイムアウトした後に一度だけ呼び出されます。
サーブレットコンテナはこのメソッドを呼出した後に同じインスタンスでserviceメソッドを再度呼び出すことはありません。
このメソッドは保持されているすべてのリソース(メモリ、ファイルハンドル、スレッドなど)をクリーンアップする機会を与えます。 また、サーブレットのメモリ上の状態とあらゆる永続状態が同期されるように注意してください。
Copyright © 1999-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms. Portions Copyright © 1999-2002 The Apache Software Foundation. Portions Copyright © 2017- @megascus. Translated by @megascus.