|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
クライアントのリクエストに含まれている情報を Servlet
に提供するオブジェクトを定義しています。Servlet コンテナが
ServletRequest オブジェクトを生成し、Servlet の
service() メソッドの引数で渡します。
ServletRequest オブジェクトからは URL パラメータの
名前と値、属性、入力ストリームが取得できます。
ServletRequest
を継承したインタフェースからはプロトコル依存のデータ(例えば、HTTP のデータは
HttpServletRequest 型で提供されます)を追加情報として取得できるようになっています。
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()
例えば http や https, ftp
のようなリクエストのスキームを返します。
|
String |
getServerName()
リクエストを受け取ったサーバのホスト名を返します。 |
int |
getServerPort()
このリクエストを受け取るのに使われたポート番号を返します。 |
boolean |
isSecure()
このリクエストが HTTPS のようなセキュアなチャネルを使って送られたものかどうかを示す boolean
を返します。 |
void |
removeAttribute(String name)
このリクエストから属性を削除します。 |
void |
setAttribute(String name,
Object o)
このリクエストに属性をセットします。 |
void |
setCharacterEncoding(String env)
このリクエストのメッセージボディで使われている文字エンコーディング名を上書きします。 |
| メソッドの詳細 |
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。
指定された名前の属性が無い場合は nullpublic Enumeration getAttributeNames()
Enumeration 型の
オブジェクトを返します。このリクエストに利用可能な属性が無い場合は
このメソッドは空の Enumeration を返します。
Enumerationpublic String getCharacterEncoding()
null を返します。
String 。
リクエストに文字エンコーディングの指定が無い場合は null
public void setCharacterEncoding(String env)
throws UnsupportedEncodingException
getReader()
メソッドを使って入力ストリームから読み込む前に実行されなければなりません。
env - 文字エンコーディング名を含む String
UnsupportedEncodingException - 有効な文字エンコーディング名でない場合public int getContentLength()
public String getContentType()
null を返します。
HTTP Servlet では CGI 環境変数の CONTENT_TYPE の値に相当します。
String
public ServletInputStream getInputStream()
throws IOException
ServletInputStreamを使ってリクエストのメッセージボディに
含まれているバイナリデータを読み込むためのストリームを取得します。
このメソッドか getReader() のどちらか一つだけが実行されて
メッセージボディを取得します。両方ではありません。
リクエストのメッセージボディを含む
ServletInputStreamオブジェクト
IllegalStateException - このリクエストですでに getReader() メソッドが実行されている場合
IOException - 入出力の例外が発生した場合public String getParameter(String name)
String
型のオブジェクトで返しますが、パラメータが存在しない場合は
null を返します。
リクエストパラメータというのはリクエストに付けて送られてくる追加情報です。
HTTP Servlet ではパラメータはクエリー文字列か
POST された FORM のデータに含まれています。
このメソッドはパラメータに確実に一つの値だけがある場合に限って使用するべきです。
パラメータに複数の値があるかもしれない場合には
getParameterValues(java.lang.String) メソッドを使ってください。
もしも、このメソッドをマルチバリューのパラメータに対して使用すると、
getParameterValues()
のメソッドの戻り値である配列の最初の値のみが返されます。
HTTP POST リクエストで送ったなど、
パラメータのデータがリクエストのメッセージボディで送られた場合、
getInputStream() や getReader()
メソッドを使って直接メッセージボディを読み込む操作は、このメソッドの実行に影響を与えることがあります。
name - パラメータの名前を指定する String
StringgetParameterValues(java.lang.String)public Enumeration getParameterNames()
String
オブジェクトで構成される Enumeration を返します。
リクエストにパラメータが無い場合、空の Enumeration
を返します。
String オブジェクトで構成された
Enumeration。String
は各リクエストパラメータの名前。
パラメータが無い場合は空の Enumeration。public String[] getParameterValues(String name)
String オブジェクトの配列で返しますが、
パラメータが存在しない場合は null を返します。
受け取ったパラメータに値がひとつしかない場合、配列の大きさは 1 です。
name - 取得したいパラメータの名前を指定する
String
String
オブジェクトの配列getParameter(java.lang.String)public Map getParameterMap()
String 型。
パラメータマップの値は String
の配列です。public String getProtocol()
SERVER_PROTOCOL と同等です。
Stringpublic String getScheme()
http や https, ftp
のようなリクエストのスキームを返します。
RFC1738 で詳説されているように、スキームが違うと URL の形式も違ってきます。
Stringpublic String getServerName()
SERVER_NAME と同等です。
Stringpublic int getServerPort()
SERVER_PORT と同等です。
public BufferedReader getReader()
throws IOException
BufferedReader を使い、
文字データとして取り出します。
文字データはメッセージボディと同じ文字エンコーディングに変換されます。
メッセージボディを読み込むにはこのメソッドか getInputStream()
メソッドのどちらか一方を使います。両方は使えません。
BufferedReader
UnsupportedEncodingException - サポートされてない文字エンコーディングが使われているかテキストをデコード出来なかった場合
IllegalStateException - このリクエストにおいてすでに
getInputStream()
メソッドが実行されていた場合
入出力で例外が発生した場合
IOExceptiongetInputStream()public String getRemoteAddr()
REMOTE_ADDR と同等です。
Stringpublic String getRemoteHost()
REMOTE_HOST と同等です。
String
public void setAttribute(String name,
Object o)
RequestDispatcher とともに使われるのが一般的です。
属性名はパッケージ名と同じ命名規約に従うべきです。
java.*, javax.*, com.sun.*
に一致する名前は Sun Microsystems が予約しています。
値に null がセットされると removeAttribute(java.lang.String)
を実行したのと同じ結果になります。
name - 属性名を示す Stringo - セットするObjectpublic void removeAttribute(String name)
属性名はパッケージ名と同じ命名規約に従うべきです。
java.*, javax.*, com.sun.*
に一致する名前は Sun Microsystems が予約しています。
name - 削除する属性の名前を示す
Stringpublic Locale getLocale()
Localeを返します。
クライアントのリクエストに Accept-Language ヘッダが無い場合、
このメソッドはサーバのディフォルトロケールを返します。
Localepublic Enumeration getLocales()
Localeで構成される
Enumeration を返しますが、これは Accept-Language
ヘッダを元にクライアントが表示可能であると想定されるロケールを最適なロケールから順に並べたものです。
クライアントのリクエストに Accept-Language
ヘッダが無い場合はサーバのデフォルトロケールを使って
Locale ひとつだけの Enumeration
を返します。
Localeで構成される
Enumerationpublic boolean isSecure()
boolean
を返します。
booleanpublic RequestDispatcher getRequestDispatcher(String path)
RequestDispatcher オブジェクトを返します。
RequestDispatcher
オブジェクトはリクエストをリソースにフォワードするかレスポンスにリソースをインクルードするのに使います。
リソースは動的なもの、静的なもの双方が対象です。
指定するのは相対的なパス名ですが、この Servlet
が属しているコンテキスト外部のリソースは指定できません。
パス名が "/" で始まっている場合はこのコンテキストルートに対する相対パスであると解釈されます。
Servlet コンテナが RequestDispatcher
を返せない場合、このメソッドは null
を返します。
このメソッドは ServletContext.getRequestDispatcher(java.lang.String) とは違い、
相対パスしか指定できません。
path - リソースのパス名を指定する String
RequestDispatcherオブジェクトRequestDispatcher,
ServletContext.getRequestDispatcher(java.lang.String)public String getRealPath(String path)
ServletContext.getRealPath(java.lang.String) を使ってください。
|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
このドキュメントは、Ja-Jakarta Project により翻訳されました。コメントがある場合は、jajakarta-report@jajakarta.good-day.netまでお願いします。
Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.