javax.servlet
インタフェース ServletRequest

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

public interface ServletRequest

クライアントの要求についての情報をサーブレットへ提供するオブジェクトを定義します。サーブレットコンテナが ServletRequest オブジェクトを作成し、それを引数としてサーブレットの service メソッドへ渡します。

ServletRequest オブジェクトは、パラメータの名前と値、属性、および入力ストリームなどのデータを提供します。ServletRequest を拡張したインタフェースからは、追加情報としてのプロトコル固有データを取得することができます。たとえば、HttpServletRequest を使うと HTTP データを取得することができます。

関連項目:
HttpServletRequest

メソッドの概要
 java.lang.Object getAttribute(java.lang.String name)
          指定された属性の値を Object として返します。
 java.util.Enumeration getAttributeNames()
          この要求で利用できる属性の名前が格納された Enumeration を返します。
 java.lang.String getCharacterEncoding()
          この要求の本体で使用される文字エンコーディングの名前を返します。
 int getContentLength()
          要求本体の長さを、すなわち入力ストリームから読み込めるバイト長を返します。
 java.lang.String getContentType()
          要求本体の MIME タイプを返します。
 ServletInputStream getInputStream()
          ServletInputStream を使用して、バイナリデータとして要求の本体を取得します。
 java.util.Locale getLocale()
          クライアントがコンテンツを受け入れる際の優先 Locale を、Accept-Language ヘッダに基づいて返します。
 java.util.Enumeration getLocales()
          Locale オブジェクトの Enumeration を返します。
 java.lang.String getParameter(java.lang.String name)
          要求パラメータの値を String として返します。
 java.util.Map getParameterMap()
          この要求から取得できるパラメータを java.util.Map で返します。
 java.util.Enumeration getParameterNames()
          この要求に含まれるパラメータの名前を格納した、String オブジェクトの Enumeration を返します。
 java.lang.String[] getParameterValues(java.lang.String name)
          指定された要求パラメータのすべての値が格納された String オブジェクトの配列を返します。
 java.lang.String getProtocol()
          要求が使用するプロトコルの名前とバージョン番号を、たとえば HTTP/1.1 のように、protocol/majorVersion.minorVersion の形式で返します。
 java.io.BufferedReader getReader()
          BufferedReader を使用して、要求の本体を文字データとして取得します。
 java.lang.String getRealPath(java.lang.String path)
          推奨されていません。 Java Servlet API 2.1 以降では、代わりに ServletContext.getRealPath(java.lang.String) を使用します。
 java.lang.String getRemoteAddr()
          要求を送信したクライアントのインターネットプロトコル (IP) アドレスを返します。
 java.lang.String getRemoteHost()
          要求を送信したクライアントの完全指定のドメイン名を返します。
 RequestDispatcher getRequestDispatcher(java.lang.String path)
          指定されたパスにあるリソースのラッパーとして機能する、RequestDispatcher オブジェクトを返します。
 java.lang.String getScheme()
          たとえば httphttps、または ftp のように、この要求に使用されるスキーマの名前を返します。
 java.lang.String getServerName()
          要求を受信したサーバのホスト名を返します。
 int getServerPort()
          この要求を受信したポート番号を返します。
 boolean isSecure()
          この要求が、HTTPS などのセキュリティ保護されたチャネルを使用して送信されたかどうかを示す論理値を返します。
 void removeAttribute(java.lang.String name)
          この要求から属性を削除します。
 void setAttribute(java.lang.String name, java.lang.Object o)
          この要求に対し属性を設定し、格納します。
 void setCharacterEncoding(java.lang.String env)
          この要求の本体で使用される文字エンコーディングの名前をオーバーライドします。
 

メソッドの詳細

getAttribute

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

属性は 2 つの方法で設定できます。1 つは要求に付随するカスタム情報を利用できるようにサーブレットコンテナが属性を設定する方法です。たとえば、HTTPS を使用して行われた要求の場合、属性 javax.servlet.request.X509Certificate を使用して、クライアントの証明書についての情報を取得することができます。もう 1 つは setAttribute(java.lang.String, java.lang.Object) を使用して、プログラムで属性を設定する方法です。このメソッドによって、RequestDispatcher を呼び出す前に、情報を要求内に埋め込むことができます。

属性の名前は、パッケージ名と同じ規則に従う必要があります。この仕様では、java.*javax.*、および sun.* に一致する名前を予約しています。

パラメータ:
name - 属性の名前を指定する String
戻り値:
属性の値を含む Object。属性が存在しない場合は null

getAttributeNames

public java.util.Enumeration getAttributeNames()
この要求で利用できる属性の名前が格納された Enumeration を返します。利用できる属性が要求にない場合は、空の Enumeration を返します。
戻り値:
要求に付随する属性の名前が格納された文字列の Enumeration

getCharacterEncoding

public java.lang.String getCharacterEncoding()
この要求の本体で使用される文字エンコーディングの名前を返します。要求が文字エンコーディングを指定していない場合、このメソッドは null を返します。
戻り値:
文字エンコーディングの名前が格納された String。要求が文字エンコーディングを指定していない場合は null

setCharacterEncoding

public void setCharacterEncoding(java.lang.String env)
                          throws java.io.UnsupportedEncodingException
この要求の本体で使用される文字エンコーディングの名前をオーバーライドします。このメソッドは、要求パラメータの読み取り、または getReader() を使用した入力の読み取りに先立って呼び出す必要があります。
パラメータ:
env - 文字エンコーディングの名前を示す String
例外:
java.io.UnsupportedEncodingException - これが有効なエンコーディングでない場合

getContentLength

public int getContentLength()
要求本体の長さを、すなわち入力ストリームから読み込めるバイト長を返します。または、長さが不明な場合は -1 を返します。HTTP サーブレットの場合、返される値は CGI 変数 CONTENT_LENGTH の値と同じです。
戻り値:
要求本体の長さを表す整数。長さが不明な場合は -1

getContentType

public java.lang.String getContentType()
要求本体の MIME タイプを返します。タイプが不明な場合は null を返します。HTTP サーブレットの場合、返される値は CGI 変数 CONTENT_TYPE の値と同じです。
戻り値:
要求の MIME タイプの名前が格納された String。タイプが不明な場合は null

getInputStream

public ServletInputStream getInputStream()
                                  throws java.io.IOException
ServletInputStream を使用して、バイナリデータとして要求の本体を取得します。このメソッドまたは getReader() のどちらかを、本体を読み取るために呼び出すことができますが、両方を呼び出すことはできません。
戻り値:
要求の本体が格納された ServletInputStream オブジェクト
例外:
java.lang.IllegalStateException - getReader() メソッドがこの要求に対してすでに呼び出されていた場合
java.io.IOException - 入出力例外が発生した場合

getParameter

public java.lang.String getParameter(java.lang.String name)
要求パラメータの値を String として返します。パラメータが存在しない場合は、null を返します。要求パラメータは、要求とともに送信される追加情報です。HTTP サーブレットの場合、クエリー文字列内または POST された形式のデータ内にパラメータが格納されています。

パラメータに 1 つの値のみが含まれていることが確実な場合にのみ、このメソッドを使用してください。パラメータに複数の値が含まれている可能性がある場合は、getParameterValues(java.lang.String) を使用します。

複数の値を持つパラメータに対してこのメソッドを使用した場合、返される値は、getParameterValues で返される配列内の最初の値と同じです。

パラメータのデータが、HTTP POST 要求のように要求本体内で送信された場合は、getInputStream() または getReader() による本体の直接の読み取りが、このメソッドの実行に影響を与える可能性があります。

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

getParameterNames

public java.util.Enumeration getParameterNames()
この要求に含まれるパラメータの名前を格納した、String オブジェクトの Enumeration を返します。パラメータが要求にない場合、このメソッドは空の Enumeration を返します。
戻り値:
String オブジェクトの Enumeration。各 String には、要求パラメータの名前が格納されている。パラメータが要求にない場合は、空の Enumeration

getParameterValues

public java.lang.String[] getParameterValues(java.lang.String name)
指定された要求パラメータのすべての値が格納された String オブジェクトの配列を返します。パラメータが存在しない場合は、null を返します。

パラメータの値が 1 つのみである場合、配列の長さは 1 です。

パラメータ:
name - 取得したいパラメータの名前を表す String
戻り値:
パラメータの値が格納された String オブジェクトの配列
関連項目:
getParameter(java.lang.String)

getParameterMap

public java.util.Map getParameterMap()
この要求から取得できるパラメータを java.util.Map で返します。要求パラメータとは、要求とともに送信される追加情報です。HTTP サーブレットの場合、パラメータはクエリー文字列内または POST された形式のデータ内に格納されています。
戻り値:
キーとしてパラメータ名、マップ値としてパラメータ値が格納された不変の java.util.Map。パラメータマップ内のキーは String 型。パラメータマップ内の値は String の配列型

getProtocol

public java.lang.String getProtocol()
要求が使用するプロトコルの名前とバージョン番号を、たとえば HTTP/1.1 のように、protocol/majorVersion.minorVersion の形式で返します。HTTP サーブレットの場合、返される値は CGI 変数 SERVER_PROTOCOL の値と同じです。
戻り値:
プロトコル名とバージョン番号を含む String

getScheme

public java.lang.String getScheme()
たとえば httphttps、または ftp のように、この要求に使用されるスキーマの名前を返します。RFC 1738 に説明されているとおり、URL の形式はスキーマによって異なります。
戻り値:
この要求に使用されるスキーマの名前が格納された String

getServerName

public java.lang.String getServerName()
要求を受信したサーバのホスト名を返します。HTTP サーブレットの場合、返される値は CGI 変数 SERVER_NAME の値と同じです。
戻り値:
この要求を受信したサーバの名前が格納された String

getServerPort

public int getServerPort()
この要求を受信したポート番号を返します。HTTP サーブレットの場合、返される値は CGI 変数 SERVER_PORT の値と同じです。
戻り値:
ポート番号を示す整数

getReader

public java.io.BufferedReader getReader()
                                 throws java.io.IOException
BufferedReader を使用して、要求の本体を文字データとして取得します。リーダは、本体に使用されている文字エンコーディングに従って、文字データを変換します。本体を読み取るには、このメソッドまたは getInputStream() のどちらかを呼び出すことができますが、両方を呼び出すことはできません。
戻り値:
要求の本体が格納された BufferedReader オブジェクト
例外:
java.io.UnsupportedEncodingException - 使用された文字エンコーディングがサポートされていないので、テキストを復号化できない場合
java.lang.IllegalStateException - getInputStream() メソッドが、この要求に対してすでに呼び出されていた場合
java.io.IOException - 入出力例外が発生した場合
関連項目:
getInputStream()

getRemoteAddr

public java.lang.String getRemoteAddr()
要求を送信したクライアントのインターネットプロトコル (IP) アドレスを返します。HTTP サーブレットの場合、返される値は CGI 変数 REMOTE_ADDR の値と同じです。
戻り値:
この要求を送信したクライアントの IP アドレスが格納された String

getRemoteHost

public java.lang.String getRemoteHost()
要求を送信したクライアントの完全指定のドメイン名を返します。Web コンテナがホスト名を解決できなかったり、パフォーマンス向上のためにホスト名を解決しないことを選択した場合は、ドットで区切られた書式の IP アドレスを返します。HTTP サーブレットの場合、返される値は CGI 変数 REMOTE_HOST の値と同じです。
戻り値:
クライアントの完全指定のドメイン名を含む String

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object o)
この要求に対し属性を設定し、格納します。属性は、要求ごとにリセットされます。このメソッドは、通常 RequestDispatcher と併せて使用されます。

属性の名前は、パッケージ名と同じ規則に従う必要があります。java.*javax.*、および com.sun.* で始まる名前は、Sun Microsystems で使用するように予約されています。
渡された値が null の場合、removeAttribute(java.lang.String) を呼び出した場合と同じ結果となります。

パラメータ:
name - 属性の名前を指定する String
o - 格納される Object

removeAttribute

public void removeAttribute(java.lang.String name)
この要求から属性を削除します。属性は要求が処理されている間のみ維持されるものなので、このメソッドは通常必要ではありません。

属性の名前は、パッケージ名と同じ規則に従う必要があります。java.*javax.*、および com.sun.* で始まる名前は、Sun Microsystems で使用するように予約されています。

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

getLocale

public java.util.Locale getLocale()
クライアントがコンテンツを受け入れる際の優先 Locale を、Accept-Language ヘッダに基づいて返します。クライアントの要求に Accept-Language ヘッダが提供されていなかった場合、このメソッドはサーバのデフォルトのロケールを返します。
戻り値:
クライアントの優先 Locale

getLocales

public java.util.Enumeration getLocales()
Locale オブジェクトの Enumeration を返します。この Enumeration には、Accept-Language ヘッダに基づいてクライアントが受け入れ可能なロケールが、優先ロケールから始まり降順に列挙されています。クライアントの要求に Accept-Language ヘッダが提供されていなかった場合、このメソッドは 1 つの Locale、つまりサーバのデフォルトのロケールが格納された Enumeration を返します。
戻り値:
クライアントの優先 Locale オブジェクトの Enumeration

isSecure

public boolean isSecure()
この要求が、HTTPS などのセキュリティ保護されたチャネルを使用して送信されたかどうかを示す論理値を返します。
戻り値:
この要求が、セキュリティ保護されたチャネルを使用して送信されたかどうかを示す論理値

getRequestDispatcher

public RequestDispatcher getRequestDispatcher(java.lang.String path)
指定されたパスにあるリソースのラッパーとして機能する、RequestDispatcher オブジェクトを返します。RequestDispatcher オブジェクトは、要求をリソースへ転送するため、または応答内にリソースをインクルードするために使用できます。リソースは、動的または静的のどちらでもかまいません。

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

このメソッドと ServletContext.getRequestDispatcher(java.lang.String) の違いは、このメソッドが相対パスをとることができるという点です。

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

getRealPath

public java.lang.String getRealPath(java.lang.String path)
推奨されていません。 Java Servlet API 2.1 以降では、代わりに ServletContext.getRealPath(java.lang.String) を使用します。



Copyright 2002 Sun Microsystems, Inc. All rights reserved.
使用には使用許諾契約が適用されます。