|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface Servlet
全ての Servlet が実装しなければならないメソッドを定義しています。
Servlet とは小さな Java のプログラムで Web サーバの中で動作します。 Servlet は Web クライアントからリクエストを受け取り、レスポンスを返します。 通常、HTTP、つまり HyperText Transfer Protocol を介して通信が行われます。
このインタフェースを実装するには javax.servlet.GenericServlet
を継承して一般的な通信を行う Servlet を記述するかjavax.servlet.http.HttpServlet
を継承して HTTP による通信を行う Servlet を記述できるようになっています。
このインタフェースは Servlet を初期化するメソッドやリクエストに対してサービスを提供するメソッド、サーバから Servlet を削除するメソッドを定義しています。 これらはライフサイクルメソッドとしても知られており、次の順番で実行されます。
init
メソッドにより 初期化されます。
service
メソッドが実行されます。
destroy
メソッドが実行され、削除されますが、その後、ガーベジコレクションされファイナライズされます。
ライフサイクルメソッドに加えて、このインタフェースは getServletConfig
メソッドも提供しています。
このメソッドは Servlet の実行開始時の情報を取得するのに使われます。
また、getServletInfo
メソッドも提供されていますが、これは作者やバージョン、著作権といった Servlet 自身の基本的なな情報を Servlet が返せるようにしたものです。
GenericServlet
,
HttpServlet
メソッドの概要 | |
---|---|
void |
destroy()
Servlet コンテナが実行するメソッドで、この Servlet がサービス提供を停止するときに実行されます。 |
ServletConfig |
getServletConfig()
ServletConfig オブジェクトを返します。 |
java.lang.String |
getServletInfo()
作者、バージョン、著作権といった Servlet に関する情報を返します。 |
void |
init(ServletConfig config)
Servlet コンテナが実行しますが、実行されると Servlet がサービスを提供できるようになったことを意味しています。 |
void |
service(ServletRequest req,
ServletResponse res)
Servlet コンテナが実行するメソッドです。 |
メソッドの詳細 |
---|
void init(ServletConfig config) throws ServletException
Servlet コンテナは Servlet がインスタンス化された後、1 回だけ init
メソッドを実行します。
Servlet がリクエストを受け付けられるようになる前に init
メソッドの実行が完了していなければなりません。
Servlet コンテナは init
の実行結果が次のようになった場合、Servlet がサービスを提供できる状態にはできません。
ServletException
をスローした
config
- Servlet の設定や初期化パラメータが含まれている ServletConfig
オブジェクト
ServletException
- Servlet の正常な処理が妨げられた場合に発生する例外UnavailableException
,
getServletConfig()
ServletConfig getServletConfig()
ServletConfig
オブジェクトを返します。
この Servlet の初期値や起動時のパラメータが含まれています。
得られたServletConfig
は init
メソッドに渡される唯一のオブジェクトです。
このインタフェースの実装は ServletConfig
オブジェクトを維持する責任を負っています。
そしてこのメソッドが実行されたときにオブジェクトを返すようにします。
GenericServlet
クラスはこのインタフェースを実装していますが、すでにそのような実装になっています。
ServletConfig
オブジェクトinit(javax.servlet.ServletConfig)
void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException
このメソッドは Servlet の init()
メソッドの実行が正常に完了した後にしか実行されません。
レスポンスの状態コードは Servlet がエラーをスローする、あるいは送信するために常に設定するべきです。
通常 Servlet は Servlet コンテナのなかでマルチスレッド化された状態で実行され、並行的に複数のリクエストを処理できるようになっています。 開発者はファイルやネットワークコネクションなどの共有リソースをアクセスする際に排他制御に注意しなければなりません。 Servlet のクラスやインスタンス変数へのアクセスについても同様です。 Javaプログラム上におけるマルチスレッド処理についてのさらなる情報源として、Javaチュートリアルのマルチスレッドプログラミングの章を参考にしてください。
req
- クライアントのリクエストを表すServletRequest
オブジェクトres
- Servlet からのレスポンスを表すServletResponse
オブジェクト
ServletException
- Servlet の正常な処理が妨げられたときに発生する例外
java.io.IOException
- 入出力関連処理で発生する例外java.lang.String getServletInfo()
このメソッドが返す文字列はプレーンテキストにするべきです。 (HTML, XML などのような) マークアップの類を使うべきではありません。
String
void destroy()
service
メソッドを実行しているスレッドが全て終了するか、あるいは、タイムアウト時間が過ぎると一度実行されます。
Servlet コンテナがこのメソッドを実行すると、その Servlet の service
メソッドが再び実行されることはありません。
このメソッドは Servlet に使用したままの状態になっているリソース (例えば、メモリ、ファイルハンドラ、スレッド) を開放する機会を与えています。 また、あらゆる永続性の状態が、メモリ上にある Servlet の現在における状態と同期しているように注意してください。
|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |