javax.servlet
インタフェース ServletRequest

既知のサブインタフェースの一覧:
HttpServletRequest
既知の実装クラスの一覧:
HttpServletRequestWrapper, ServletRequestWrapper

public interface ServletRequest

クライアントのリクエストに含まれている情報を Servlet に提供するオブジェクトを定義しています。Servlet コンテナが ServletRequest オブジェクトを生成し、Servlet の service() メソッドの引数で渡します。

ServletRequest オブジェクトからは URL パラメータの 名前と値、属性、入力ストリームが取得できます。 ServletRequest を継承したインタフェースからはプロトコル依存のデータ(例えば、HTTP のデータは HttpServletRequest 型で提供されます)を追加情報として取得できるようになっています。

バージョン:
$Version$
作成者:
Various
関連項目:
HttpServletRequest

メソッドの概要
 Object getAttribute(String name)
          指定された名前の属性値を Object として返しますが、 指定された名前の属性が存在しない場合は null を返します。
 Enumeration getAttributeNames()
          このリクエストで利用可能な属性名を含む Enumeration 型の オブジェクトを返します。
 String getCharacterEncoding()
          このリクエストのメッセージボディで使われてる文字エンコーディングの名前を返します。
 int getContentLength()
          リクエストのメッセージボディ、あるいは、 入力ストリームから読み込めるバイト長を返しますが、 長さがわからない場合は -1 を返します。
 String getContentType()
          リクエストに含まれるメッセージボディの MIME タイプを返しますが、 タイプがわからない場合は null を返します。
 ServletInputStream getInputStream()
          ServletInputStreamを使ってリクエストのメッセージボディに 含まれているバイナリデータを読み込むためのストリームを取得します。
 Locale getLocale()
          Accept-Language ヘッダを元に、クライアントがコンテンツを表示できると想定される Localeを返します。
 Enumeration getLocales()
          Localeで構成される Enumeration を返しますが、これは Accept-Language ヘッダを元にクライアントが表示可能であると想定されるロケールを最適なロケールから順に並べたものです。
 String getParameter(String name)
          リクエストパラメータの値を String 型のオブジェクトで返しますが、パラメータが存在しない場合は null を返します。
 Map getParameterMap()
          このリクエストから取得できるパラメータを java.util.Map で返します。
 Enumeration getParameterNames()
          このリクエストに含まれているパラメータ名を表す String オブジェクトで構成される Enumeration を返します。
 String[] getParameterValues(String name)
          指定された名前で取得できるリクエストパラメータ全ての値を String オブジェクトの配列で返しますが、 パラメータが存在しない場合は null を返します。
 String getProtocol()
          リクエストのプロトコル名とバージョンを HTTP/1.1 のように プロトコル名/メジャーバージョン番号.マイナーバージョン番号 の形式で返します。
 BufferedReader getReader()
          リクエストのメッセージボディを BufferedReader を使い、 文字データとして取り出します。
 String getRealPath(String path)
          推奨されていません。 Java Servlet API 2.1 以降。代わりに ServletContext.getRealPath(java.lang.String) を使ってください。
 String getRemoteAddr()
          リクエストを送ってきたクライアントの IP(Internet Protocol) アドレスを返します。
 String getRemoteHost()
          リクエストを送ってきたクライアントの FQDN(Fully Qualified Domain Name: 完全修飾ドメイン名)を返します。
 RequestDispatcher getRequestDispatcher(String path)
          指定されたパスに位置するリソースのラッパとして動作する RequestDispatcher オブジェクトを返します。
 String getScheme()
          例えば httphttps, ftp のようなリクエストのスキームを返します。
 String getServerName()
          リクエストを受け取ったサーバのホスト名を返します。
 int getServerPort()
          このリクエストを受け取るのに使われたポート番号を返します。
 boolean isSecure()
          このリクエストが HTTPS のようなセキュアなチャネルを使って送られたものかどうかを示す boolean を返します。
 void removeAttribute(String name)
          このリクエストから属性を削除します。
 void setAttribute(String name, Object o)
          このリクエストに属性をセットします。
 void setCharacterEncoding(String env)
          このリクエストのメッセージボディで使われている文字エンコーディング名を上書きします。
 

メソッドの詳細

getAttribute

public Object getAttribute(String name)
指定された名前の属性値を Object として返しますが、 指定された名前の属性が存在しない場合は null を返します。

属性は 2つの方法でセットされます。 リクエストに付随するカスタム情報として利用できるように Servlet コンテナが属性をセットすることがあります。 例えば、HTTPS で生成されたリクエストではコンテナは javax.servlet.request.X509Certificate オブジェクトを属性にセットするのでここからクライアントの証明書を取得できます。 属性は setAttribute(java.lang.String, java.lang.Object) メソッドを使ってプログラム的にセットすることも可能です。 プログラム的にセットすると RequestDispatcherが実行される前に情報をリクエストに組み込めます。

属性名はパッケージ名と同じ命名規約に従うべきです。 java.*, javax.*, sun.* に該当する名前は仕様で予約されています。

パラメータ:
name - 属性の名前を指定する String
戻り値:
属性の値が含まれている Object。 指定された名前の属性が無い場合は null

getAttributeNames

public Enumeration getAttributeNames()
このリクエストで利用可能な属性名を含む Enumeration 型の オブジェクトを返します。このリクエストに利用可能な属性が無い場合は このメソッドは空の Enumeration を返します。

戻り値:
リクエストに付随する属性名を含む文字列からなる Enumeration

getCharacterEncoding

public String getCharacterEncoding()
このリクエストのメッセージボディで使われてる文字エンコーディングの名前を返します。 リクエストに文字エンコーディングの指定が無い場合、 このメソッドは null を返します。

戻り値:
文字エンコーディングの名前を含む String 。 リクエストに文字エンコーディングの指定が無い場合は null

setCharacterEncoding

public void setCharacterEncoding(String env)
                          throws UnsupportedEncodingException
このリクエストのメッセージボディで使われている文字エンコーディング名を上書きします。 このメソッドはリクエストのパラメータを読み込む前に、 また、getReader() メソッドを使って入力ストリームから読み込む前に実行されなければなりません。

パラメータ:
env - 文字エンコーディング名を含む String
例外:
UnsupportedEncodingException - 有効な文字エンコーディング名でない場合

getContentLength

public int getContentLength()
リクエストのメッセージボディ、あるいは、 入力ストリームから読み込めるバイト長を返しますが、 長さがわからない場合は -1 を返します。 HTTP Servlet では CGI 環境変数 CONTENT_LENGTH の値に相当します。

戻り値:
リクエストのメッセージボディの長さを表す整数値。 長さがわからない場合は -1

getContentType

public String getContentType()
リクエストに含まれるメッセージボディの MIME タイプを返しますが、 タイプがわからない場合は null を返します。 HTTP Servlet では CGI 環境変数の CONTENT_TYPE の値に相当します。

戻り値:
リクエストの MIME タイプの名前を含む String

getInputStream

public ServletInputStream getInputStream()
                                  throws IOException
ServletInputStreamを使ってリクエストのメッセージボディに 含まれているバイナリデータを読み込むためのストリームを取得します。 このメソッドか getReader() のどちらか一つだけが実行されて メッセージボディを取得します。両方ではありません。 リクエストのメッセージボディを含む ServletInputStreamオブジェクト

例外:
IllegalStateException - このリクエストですでに getReader() メソッドが実行されている場合
IOException - 入出力の例外が発生した場合

getParameter

public String getParameter(String name)
リクエストパラメータの値を String 型のオブジェクトで返しますが、パラメータが存在しない場合は null を返します。 リクエストパラメータというのはリクエストに付けて送られてくる追加情報です。 HTTP Servlet ではパラメータはクエリー文字列か POST された FORM のデータに含まれています。

このメソッドはパラメータに確実に一つの値だけがある場合に限って使用するべきです。 パラメータに複数の値があるかもしれない場合には getParameterValues(java.lang.String) メソッドを使ってください。

もしも、このメソッドをマルチバリューのパラメータに対して使用すると、 getParameterValues() のメソッドの戻り値である配列の最初の値のみが返されます。

HTTP POST リクエストで送ったなど、 パラメータのデータがリクエストのメッセージボディで送られた場合、 getInputStream()getReader() メソッドを使って直接メッセージボディを読み込む操作は、このメソッドの実行に影響を与えることがあります。

パラメータ:
name - パラメータの名前を指定する String
戻り値:
単一のパラメータの値を表す String
関連項目:
getParameterValues(java.lang.String)

getParameterNames

public Enumeration getParameterNames()
このリクエストに含まれているパラメータ名を表す String オブジェクトで構成される Enumeration を返します。 リクエストにパラメータが無い場合、空の Enumeration を返します。

戻り値:
String オブジェクトで構成された EnumerationString は各リクエストパラメータの名前。 パラメータが無い場合は空の Enumeration

getParameterValues

public String[] getParameterValues(String name)
指定された名前で取得できるリクエストパラメータ全ての値を String オブジェクトの配列で返しますが、 パラメータが存在しない場合は null を返します。

受け取ったパラメータに値がひとつしかない場合、配列の大きさは 1 です。

パラメータ:
name - 取得したいパラメータの名前を指定する String
戻り値:
パラメータの値が入っている String オブジェクトの配列
関連項目:
getParameter(java.lang.String)

getParameterMap

public Map getParameterMap()
このリクエストから取得できるパラメータを java.util.Map で返します。 リクエストパラメータというのはリクエストに付けられて送られてくる付加情報です。 HTTP Servlet ではパラメータはクエリー文字列になっているか、 あるいは、フォームデータ形式でポストされます。

戻り値:
パラメータ名が key 、パラメータ値がマップの値と なっている不変な java.util.Map。 パラメータマップの key は String 型。 パラメータマップの値は String の配列です。

getProtocol

public String getProtocol()
リクエストのプロトコル名とバージョンを HTTP/1.1 のように プロトコル名/メジャーバージョン番号.マイナーバージョン番号 の形式で返します。 HTTP Servlet ではこのメソッドで取得できる値は CGI で使用する環境変数の SERVER_PROTOCOL と同等です。

戻り値:
プロトコル名とバージョンを示す String

getScheme

public String getScheme()
例えば httphttps, ftp のようなリクエストのスキームを返します。 RFC1738 で詳説されているように、スキームが違うと URL の形式も違ってきます。

戻り値:
このリクエストに使われたスキームを示す String

getServerName

public String getServerName()
リクエストを受け取ったサーバのホスト名を返します。HTTP Servlet では CGI で使用する環境変数の SERVER_NAME と同等です。

戻り値:
リクエストが送り込まれたサーバの名前を示す String

getServerPort

public int getServerPort()
このリクエストを受け取るのに使われたポート番号を返します。 HTTP Servlet では CGI で使用される環境変数の SERVER_PORT と同等です。

戻り値:
ポート番号を示す整数値

getReader

public BufferedReader getReader()
                         throws IOException
リクエストのメッセージボディを BufferedReader を使い、 文字データとして取り出します。 文字データはメッセージボディと同じ文字エンコーディングに変換されます。 メッセージボディを読み込むにはこのメソッドか getInputStream() メソッドのどちらか一方を使います。両方は使えません。

戻り値:
リクエストのメッセージボディを含む BufferedReader
例外:
UnsupportedEncodingException - サポートされてない文字エンコーディングが使われているかテキストをデコード出来なかった場合
IllegalStateException - このリクエストにおいてすでに getInputStream() メソッドが実行されていた場合 入出力で例外が発生した場合
IOException
関連項目:
getInputStream()

getRemoteAddr

public String getRemoteAddr()
リクエストを送ってきたクライアントの IP(Internet Protocol) アドレスを返します。HTTP Servlet では CGI で使用される環境変数の REMOTE_ADDR と同等です。

戻り値:
リクエストを送ってきたクライアントの IP アドレスを示す String

getRemoteHost

public String getRemoteHost()
リクエストを送ってきたクライアントの FQDN(Fully Qualified Domain Name: 完全修飾ドメイン名)を返します。コンテナがホスト名を解決できないか、 (パフォーマンスを上げるため)解決しないように設定されている場合は IP アドレスをピリオドで区切った形式にして返します。HTTP Servlet では CGI で使用される環境変数の REMOTE_HOST と同等です。

戻り値:
クライアントの FQDN(Fullu Qualified Domain Name) を示す String

setAttribute

public void setAttribute(String name,
                         Object o)
このリクエストに属性をセットします。 属性は一つのリクエストでのみ有効で、 別のリクエストに変わるとリセットされます。 このメソッドは RequestDispatcher とともに使われるのが一般的です。

属性名はパッケージ名と同じ命名規約に従うべきです。 java.*, javax.*, com.sun.* に一致する名前は Sun Microsystems が予約しています。
値に null がセットされると removeAttribute(java.lang.String) を実行したのと同じ結果になります。

パラメータ:
name - 属性名を示す String
o - セットするObject

removeAttribute

public void removeAttribute(String name)
このリクエストから属性を削除します。 属性はリクエストがコンテナ内で処理されている間だけ維持されるにすぎないので、 通常、このメソッドは必要ありません。

属性名はパッケージ名と同じ命名規約に従うべきです。 java.*, javax.*, com.sun.* に一致する名前は Sun Microsystems が予約しています。

パラメータ:
name - 削除する属性の名前を示す String

getLocale

public Locale getLocale()
Accept-Language ヘッダを元に、クライアントがコンテンツを表示できると想定される Localeを返します。 クライアントのリクエストに Accept-Language ヘッダが無い場合、 このメソッドはサーバのディフォルトロケールを返します。

戻り値:
クライアントに適していると想定される Locale

getLocales

public Enumeration getLocales()
Localeで構成される Enumeration を返しますが、これは Accept-Language ヘッダを元にクライアントが表示可能であると想定されるロケールを最適なロケールから順に並べたものです。 クライアントのリクエストに Accept-Language ヘッダが無い場合はサーバのデフォルトロケールを使って Locale ひとつだけの Enumeration を返します。

戻り値:
クライアントに適していると想定される Localeで構成される Enumeration

isSecure

public boolean isSecure()
このリクエストが HTTPS のようなセキュアなチャネルを使って送られたものかどうかを示す boolean を返します。

戻り値:
リクエストがセキュアなチャネルを使って送られたものかどうかを示す boolean

getRequestDispatcher

public RequestDispatcher getRequestDispatcher(String path)
指定されたパスに位置するリソースのラッパとして動作する RequestDispatcher オブジェクトを返します。 RequestDispatcher オブジェクトはリクエストをリソースにフォワードするかレスポンスにリソースをインクルードするのに使います。 リソースは動的なもの、静的なもの双方が対象です。

指定するのは相対的なパス名ですが、この Servlet が属しているコンテキスト外部のリソースは指定できません。 パス名が "/" で始まっている場合はこのコンテキストルートに対する相対パスであると解釈されます。 Servlet コンテナが RequestDispatcher を返せない場合、このメソッドは null を返します。

このメソッドは ServletContext.getRequestDispatcher(java.lang.String) とは違い、 相対パスしか指定できません。

パラメータ:
path - リソースのパス名を指定する String
戻り値:
指定されたパスに位置するリソースのラッパとして動作する RequestDispatcherオブジェクト
関連項目:
RequestDispatcher, ServletContext.getRequestDispatcher(java.lang.String)

getRealPath

public String getRealPath(String path)
推奨されていません。 Java Servlet API 2.1 以降。代わりに ServletContext.getRealPath(java.lang.String) を使ってください。



このドキュメントは、Ja-Jakarta Project により翻訳されました。コメントがある場合は、jajakarta-report@jajakarta.good-day.netまでお願いします。

Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.