public interface ServletRequest
ServletRequestオブジェクトを作成し、サーブレットのserviceメソッドへの引数として渡します。
ServletRequestオブジェクトはパラメータ名と値、属性、および入力ストリームを含むデータを提供します。
ServletRequestを拡張するインターフェースは追加のプロトコル固有のデータを提供できます。
(たとえば、HTTPのデータはHttpServletRequestによって提供されます。)
HttpServletRequest| 修飾子とタイプ | メソッドと説明 |
|---|---|
AsyncContext |
getAsyncContext()
このリクエストで
startAsync()またはstartAsync(ServletRequest,ServletResponse)の最新の呼び出しによって作成または再初期化されたAsyncContextを取得します。 |
Object |
getAttribute(String name)
名前の付いた属性の値を
Objectとして返します。 |
Enumeration<String> |
getAttributeNames()
このリクエストで利用可能な属性の値を含む
Enumerationを返します。 |
String |
getCharacterEncoding()
このリクエストのボディで使用されている文字エンコーディングの名前を返します。
|
int |
getContentLength()
リクエストボディの入力ストリームによって利用可能な長さをバイト単位で返します。
|
long |
getContentLengthLong()
リクエストボディの入力ストリームによって利用可能な長さをバイト単位で返します。
|
String |
getContentType()
リクエストボディのMIME形式を返します。
|
DispatcherType |
getDispatcherType()
このリクエストのdispatcher typeを取得します。
|
ServletInputStream |
getInputStream()
リクエストボディを
ServletInputStreamを利用してバイナリデータとして取得します。 |
String |
getLocalAddr()
リクエストを受信したインターフェースのインターネットプロトコル(IP)アドレスを返します。
|
Locale |
getLocale()
Accept-Languageヘッダーの値からクライアントがコンテンツを受け入れる優先の
Locale(ロケール、地域、言語)を返します。 |
Enumeration<Locale> |
getLocales()
Accept-Languageヘッダーの値からクライアントが受け入れられるlocale(ロケール、地域、言語)の優先度の降順で示す
LocaleオブジェクトのEnumerationを返します。 |
String |
getLocalName()
リクエストを受信したインターフェースのインターネットプロトコル(IP)ホスト名を返します。
|
int |
getLocalPort()
リクエストを受信したインターフェースのインターネットプロトコル(IP)ポート番号を返します。
|
String |
getParameter(String name)
リクエストパラメーターを
Stringとして返します。 |
Map<String,String[]> |
getParameterMap()
リクエストのパラメーターの java.util.Map を返します。
|
Enumeration<String> |
getParameterNames()
リクエストに含まれるパラメーターの名前を含む
StringのEnumerationを返します。 |
String[] |
getParameterValues(String name)
リクエストパラメーターに含まれるすべての値を
Stringオブジェクトの配列として返します。 |
String |
getProtocol()
リクエストに使用されたプロトコルの名前とバージョンをHTTP/1.1のようにprotocol/majorVersion.minorVersionの形式で返します。
|
BufferedReader |
getReader()
リクエストボディを
BufferedReader.を利用して文字データとして取得します。 |
String |
getRealPath(String path)
非推奨です。
Version 2.1 から
ServletContext.getRealPath(java.lang.String)に置き換えられました |
String |
getRemoteAddr()
リクエストを送信したクライアントまたは最後のプロキシのインターネットプロトコル(IP)アドレスを返します。
|
String |
getRemoteHost()
リクエストを送信したクライアントまたは最後のプロキシの完全修飾名(FQN)を返します。
|
int |
getRemotePort()
リクエストを送信したクライアントまたは最後のプロキシのインターネットプロトコル(IP)送信元ポートを返します。
|
RequestDispatcher |
getRequestDispatcher(String path)
指定されたパスにあるリソースのラッパーとして機能する
RequestDispatcherのオブジェクトを返します。 |
String |
getScheme()
リクエストを作るのに使用されたスキーマを返します。
|
String |
getServerName()
リクエストが送られたサーバーのホスト名を返します。
|
int |
getServerPort()
リクエストが送られたサーバーのポート番号を返します。
|
ServletContext |
getServletContext()
このServletRequestが最後にディスパッチされたサーブレットコンテキストを返します。
|
boolean |
isAsyncStarted()
このリクエストが非同期モードになっているかどうかをチェックします。
|
boolean |
isAsyncSupported()
このリクエストが非同期操作をサポートしているかどうかをチェックします。
|
boolean |
isSecure()
このリクエストがHTTPSなどのセキュアなチャネルを使用して行われたかどうかを示すbooleanを返します。
|
void |
removeAttribute(String name)
このリクエストから属性を削除します。
|
void |
setAttribute(String name,
Object o)
このリクエストに属性を保存します。
|
void |
setCharacterEncoding(String env)
このリクエストのボディで使用されている文字エンコーディングの名前を上書きします。
|
AsyncContext |
startAsync()
このリクエストを非同期実行モードにし、オリジナルの(ラップされてない)ServletRequestとServletResponseのオブジェクトで
AsyncContextを初期化します。 |
AsyncContext |
startAsync(ServletRequest servletRequest,
ServletResponse servletResponse)
このリクエストを非同期実行モードにし、与えられたServletRequestとServletResponseのオブジェクトで
AsyncContextを初期化します。 |
Object getAttribute(String name)
Objectとして返します。指定された名前の属性が存在しない場合はnullを返します。
属性は2つの方法で設定されます。サーブレットコンテナはリクエストに関する利用可能なカスタム情報を生成するために属性を設定してもよいです。
たとえば、HTTPSを使用して行われたリクエストの場合、javax.servlet.request.X509Certificateの属性からクライアントの証明書に関する情報を取得できます。
属性はsetAttribute(java.lang.String, java.lang.Object)を使用してプログラムで設定することもできます。
これによりRequestDispatcher の呼び出しの前に情報をリクエストに埋め込むことができます。
属性名は、パッケージ名と同じ規則に従う必要があります。
この仕様ではjava.*、javax.*、sun.*と一致する名前を予約しています。
name - 属性の名前を示すStringObject、属性が存在しない場合はnullEnumeration<String> getAttributeNames()
Enumerationを返します。
このメソッドは利用可能な属性がない場合、空のEnumerationを返します。EnumerationString getCharacterEncoding()
nullを返します 。
リクエストの文字エンコーディングを指定する方法は優先度順で次の通りです。
getCharacterEncoding()を使用)
ServletContext.setRequestCharacterEncoding(java.lang.String)やデプロイメントディスクリプタを使用)
String、指定がない場合はnullvoid setCharacterEncoding(String env) throws UnsupportedEncodingException
env - 文字エンコーディングの名前を含むStringUnsupportedEncodingException - このServletRequestにキャラクターエンコーディングを設定してもよい状態で、指定したエンコーディングが不正な場合。int getContentLength()
CONTENT_LENGTHの値と同じです。
訳注:CGIはサーブレットが生まれる前にあったウェブアプリケーションを作るための仕組みです。現在はほぼ使われていません。
long getContentLengthLong()
CONTENT_LENGTHの値と同じです。
訳注:CGIはサーブレットが生まれる前にあったウェブアプリケーションを作るための仕組みです。現在はほぼ使われていません。
String getContentType()
nullを返します。
HTTPサーブレットの場合、CGI変数のCONTENT_TYPEの値と同じです。
訳注:CGIはサーブレットが生まれる前にあったウェブアプリケーションを作るための仕組みです。現在はほぼ使われていません。
String。MIME形式が不明の場合はnullを返すServletInputStream getInputStream() throws IOException
ServletInputStreamを利用してバイナリデータとして取得します。
このメソッドとgetReader()はどちらかしか呼び出せません。ServletInputStreamのオブジェクトIllegalStateException - getReader() メソッドがこのリクエストですでに呼び出されていた場合IOException - I/Oエラーが発生したString getParameter(String name)
Stringとして返します。パラメーターが存在しない場合はnullを返します。
リクエストパラメーターはリクエストと同時に送られる追加の情報です。HTTPサーブレットではリクエストパラメーターはクエリ文字列やフォームからPOSTされたデータを含みます。
このメソッドはパラメーターが確実に一つの場合のみ呼び出すことができます。もし二つ以上あるかもしれない場合はgetParameterValues(java.lang.String)を使用してください。
もしこのメソッドを複数の値のあるパラメーターに使用した場合、getParameterValuesが返す値の最初の値のみを取得できます。
もしHTTP POSTリクエストのようにパラメーターがリクエストボディで送られた場合、
getInputStream()やgetReader()で直接リクエストボディを読み取るとこのメソッドの実行が妨害される可能性があります。
name - パラメーターの名前を指定するStringStringgetParameterValues(java.lang.String)Enumeration<String> getParameterNames()
StringのEnumerationを返します。
リクエストにパラメーターがない場合は空のEnumerationを返します。StringのEnumeration、
リクエストにパラメーターがない場合は空のEnumerationString[] getParameterValues(String name)
Stringオブジェクトの配列として返します。
もしパラメーターが単一の値を持つ場合、その配列の長さは1です。
name - 値が要求されているパラメーターの名前を含めた StringString オブジェクトの配列getParameter(java.lang.String)Map<String,String[]> getParameterMap()
リクエストパラメーターはリクエストと同時に送られる追加の情報です。 HTTPサーブレットではリクエストパラメーターはクエリ文字列やフォームからPOSTされたデータを含みます。
String getProtocol()
SERVER_PROTOCOLの値と同じです。
訳注:CGIはサーブレットが生まれる前にあったウェブアプリケーションを作るための仕組みです。現在はほぼ使われていません。
StringString getScheme()
httpやhttps、ftpなどです。
RFC 1738に記載されているようにスキーマが異なる場合はURLの構築に異なるルールが適用されます。StringString getServerName()
Hostヘッダーが存在する場合は":"の前の部分、もしくは解決されたサーバー名、サーバーのIPアドレスなどです。Stringint getServerPort()
Hostヘッダーが存在する場合は":"の後ろの部分、もしくはクライアントのコネクションを受け付けたサーバーのポートです。BufferedReader getReader() throws IOException
BufferedReader.を利用して文字データとして取得します。
Readerはリクエストボディに使用されている文字エンコーディングに従って文字データを変換します。
このメソッドとgetInputStream()はどちらかしか呼び出せません。BufferedReaderUnsupportedEncodingException - 使用されている文字エンコーディングがサポートされておらず、テキストがデコードできなかった場合IllegalStateException - getInputStream() メソッドがこのリクエストですでに呼び出されていた場合IOException - I/Oエラーが発生したgetInputStream()String getRemoteAddr()
REMOTE_ADDRの値と同じです。
訳注:CGIはサーブレットが生まれる前にあったウェブアプリケーションを作るための仕組みです。現在はほぼ使われていません。
StringString getRemoteHost()
REMOTE_HOSTの値と同じです。
訳注:CGIはサーブレットが生まれる前にあったウェブアプリケーションを作るための仕組みです。現在はほぼ使われていません。
Stringvoid setAttribute(String name, Object o)
RequestDispatcherと組み合わせて使用されることがよくあります。
属性名はパッケージ名と同じ規則に従う必要があります。 java.*やjavax.*、com.sun.*で始まる名前は、Sun Microsystemsが使用するために予約されています。
Objectとしてnullが渡された場合、removeAttribute(java.lang.String)を呼び出されたのと同じ効果を及ぼします。
リクエストがサーブレットからRequestDispatcherによって別のウェブアプリケーションにディスパッチされた場合、
このメソッドで設定されたオブジェクトは呼び出し側のサーブレットでは正しく取得できないことがあることを注意してください。
name - 属性の名前を示す Stringo - 保存する Objectvoid removeAttribute(String name)
属性名はパッケージ名と同じ規則に従う必要があります。 java.*やjavax.*、com.sun.*で始まる名前は、Sun Microsystemsが使用するために予約されています。
name - 削除する属性の名前を示す StringLocale getLocale()
Locale(ロケール、地域、言語)を返します。
クライアントリクエストにAccept-Languageヘッダーが存在しない場合、このメソッドはサーバーのデフォルトのlocaleを返します。LocaleEnumeration<Locale> getLocales()
LocaleオブジェクトのEnumerationを返します。
クライアントリクエストにAccept-Languageヘッダーが存在しない場合、このメソッドはサーバーのデフォルトのlocaleである単一のLocaleを含むEnumerationを返します。LocaleのオブジェクトのEnumerationboolean isSecure()
RequestDispatcher getRequestDispatcher(String path)
RequestDispatcherのオブジェクトを返します。
RequestDispatcherオブジェクトを使用することでリクエストを別のリソースに転送したり、リソースをレスポンスに含めることができます。
リソースは動的なものでも静的なものでもかまいません。
指定されたパス名は相対パスにすることができますが現在のサーブレットのコンテキスト外には拡張できません。
パスが "/"で始まる場合、現在のコンテキストルートからの相対パスとして解釈されます。 サーブレットコンテナがRequestDispatcherを返せない場合、このメソッドはnullを返します 。
このメソッドとServletContext.getRequestDispatcher(java.lang.String)の違いはこのメソッドが相対パスを取ることができることです。
path - リソースへのパス名を指定する String、相対パスの場合は現在のサーブレットからの相対パスでなければならないRequestDispatcherのオブジェクト、サーブレットコンテナがRequestDispatcherを返せない場合はnullRequestDispatcher,
ServletContext.getRequestDispatcher(java.lang.String)String getRealPath(String path)
ServletContext.getRealPath(java.lang.String)に置き換えられましたpath - 実際のパスが返されるパスint getRemotePort()
String getLocalName()
StringString getLocalAddr()
Stringint getLocalPort()
ServletContext getServletContext()
AsyncContext startAsync() throws IllegalStateException
AsyncContextを初期化します。
このメソッドを呼び出すと返されたAsyncContextのAsyncContext.complete()が呼び出されるか非同期操作がタイムアウトになるまで関連するレスポンスのコミットが遅延されます。
返されたAsyncContextでAsyncContext.hasOriginalRequestAndResponse()を呼び出すとtrueが返されます。
このリクエストが非同期モードにされた後にアウトバウンド方向に呼び出されたフィルターは
インバウンド呼び出し中に追加したすべてのリクエストおよび/またはレスポンスラッパーが非同期操作の間、呼び出しを滞留させる必要はありません、
つまり、それらの関連リソースのいずれかが解放される可能性があります。
このメソッドは各AsyncListenerをそのonStartAsyncメソッドで呼び出した後、
startAsyncメソッドのうちの1つの最新の呼び出しによって返されたAsyncContextに登録されたAsyncListenerインスタンス(が存在する場合)のリストをクリアします。
その後にこのメソッドまたはオーバーロードされたメソッドを呼び出すと必要に応じて再初期化された同じAsyncContextのインスタンスが返されます。
IllegalStateException - このリクエストが非同期操作をサポートしないフィルタまたはサーブレットのスコープ内にある場合(isAsyncSupported()がfalseを返す場合)、
またはこのメソッドが非同期ディスパッチ(AsyncContext.dispatch()メソッドの一つで行われる)なしで再度呼び出されディスパッチの範囲外で呼び出された場合、
または同じディスパッチの範囲内で再度呼び出された場合、またはレスポンスがすでに閉じられている場合AsyncContext.dispatch()AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException
AsyncContextを初期化します。
引数のServletRequestとServletResponseはサーブレットのservice
メソッドもしくはフィルターのdoFilterメソッドの各々が呼び出されたスコープでの同じインスタンスであるか、
ServletRequestWrapperやServletResponseWrapperでそれらをラップしたものである必要があります。
このメソッドを呼び出すと返されたAsyncContextのAsyncContext.complete()が呼び出されるか非同期操作がタイムアウトになるまで関連するレスポンスのコミットが遅延されます。
引数として渡されたServletRequestとServletResponseがオリジナルのものもしくはアプリケーションが提供するラッパーでない限りは返されたAsyncContextでAsyncContext.hasOriginalRequestAndResponse()を呼び出すとfalseが返されます。
このリクエストが非同期モードにされた後にアウトバウンド方向に呼び出されたいくつかのフィルターは
インバウンド呼び出し中に追加したすべてのリクエストおよび/またはレスポンスラッパーが非同期操作の間、呼び出しを滞留させる必要があるかもしれず、それらの関連リソースは解放されないかもしれません。
フィルターのインバウンド呼び出し中に適用されたServletRequestWrapperは与えられたServletRequest
(ServletRequestWrapperを含みません)がAsyncContextを初期化しAsyncContext.getRequest()の呼び出しによって返される場合のみ解放されます。
このメソッドは各AsyncListenerをそのonStartAsyncメソッドで呼び出した後、
startAsyncメソッドのうちの1つの最新の呼び出しによって返されたAsyncContextに登録されたAsyncListenerインスタンス(が存在する場合)のリストをクリアします。
その後にこのメソッドまたはオーバーロードされた引数のないメソッドを呼び出すと必要に応じて再初期化された同じAsyncContextのインスタンスが返されます。 このメソッドの呼び出しのあとに引数のないメソッドの呼び出しがあった場合、 指定された(場合によってはラップされた)リクエストおよびレスポンスのオブジェクトは返されたAsyncContextにロックされたままになります。
servletRequest - AsyncContextの初期化に使用するServletRequestservletResponse - AsyncContextの初期化に使用するServletResponseIllegalStateException - このリクエストが非同期操作をサポートしないフィルタまたはサーブレットのスコープ内にある場合(isAsyncSupported()がfalseを返す場合)、
またはこのメソッドが非同期ディスパッチ(AsyncContext.dispatch()メソッドの一つで行われる)なしで再度呼び出されディスパッチの範囲外で呼び出された場合、
または同じディスパッチの範囲内で再度呼び出された場合、またはレスポンスがすでに閉じられている場合boolean isAsyncStarted()
ServletRequestはstartAsync()やstartAsync(ServletRequest,ServletResponse)の呼び出しで非同期モードになります。
このメソッドは非同期実行モードになってからAsyncContext.dispatch()を使ってディスパッチされている場合や
AsyncContext.complete()が呼ばれて非同期実行モードから開放されている場合にはfalseを返します。
boolean isAsyncSupported()
このリクエストが非同期処理をサポートできるとアノテーションがつけられていないかデプロイメントディスクリプタにフラグが立てられていないフィルターまたはサーブレットのスコープ内にある場合、 このリクエストに対して非同期操作は無効になります。
AsyncContext getAsyncContext()
startAsync()またはstartAsync(ServletRequest,ServletResponse)の最新の呼び出しによって作成または再初期化されたAsyncContextを取得します。startAsync()またはstartAsync(ServletRequest,ServletResponse)の最新の呼び出しによって作成または再初期化されたAsyncContextIllegalStateException - このリクエストが非同期モードになっていない場合、つまりstartAsync()もstartAsync(ServletRequest,ServletResponse)も呼び出されていない場合DispatcherType getDispatcherType()
リクエストのdispatcher typeは、リクエストに適用する必要があるフィルターを選択するためにコンテナによって使用されます。 一致するdispatcher typeとURLパターンを持つフィルターのみが適用されます。
リクエストのdispatcher typeを照会するように設定されたフィルターを複数のdispatcher typeに対して許可すると、フィルターはdispatcher typeに応じてリクエストを個別に処理できます。
リクエストのdispatcher typeの初期値はDispatcherType.REQUESTとして定義されます。
RequestDispatcher.forward(ServletRequest, ServletResponse)またはRequestDispatcher.include(ServletRequest, ServletResponse)を介してディスパッチされたリクエストのdispatcher typeは
それぞれDispatcherType.FORWARDまたはDispatcherType.INCLUDEとして与えられ、
AsyncContext.dispatch()メソッドで行われる非同期リクエストのdispatcher typeはDispatcherType.ASYNCとして与えられます。
最後にコンテナのエラー処理メカニズムによってエラーページにディスパッチされたリクエストのdispatcher typeはDispatcherType.ERRORとして与えられます。
DispatcherTypeCopyright © 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.