public interface ServletRequest
ServletRequest
オブジェクトを作成し、それを引数としてサーブレットの service
メソッドに渡します。ServletRequest
オブジェクトは、パラメーター名と値、属性、入力ストリームなどのデータを提供します。ServletRequest
を継承するインターフェースは、追加のプロトコル固有のデータを提供できます(たとえば、HTTP データは HttpServletRequest
によって提供されます)。
HttpServletRequest
修飾子と型 | メソッドと説明 |
---|---|
AsyncContext | getAsyncContext() このリクエストで startAsync() または startAsync(ServletRequest,ServletResponse) の最新の呼び出しによって作成または再初期化された AsyncContext を取得します。 |
ObjectSE | getAttribute(StringSE name) 指定された名前の属性が存在しない場合、名前付き属性の値を Object 、null として返します。 |
EnumerationSE<StringSE> | getAttributeNames() このリクエストで使用可能な属性の名前を含む Enumeration を返します。 |
StringSE | getCharacterEncoding() このリクエストの本文で使用される文字エンコーディングの名前を返します。 |
int | getContentLength() リクエスト本文の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明または Integer.MAX_VALUE より大きい場合は -1 を返します。 |
long | getContentLengthLong() リクエスト本体の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明の場合は -1 |
StringSE | getContentType() リクエストの本文の MIME 型を返します。型が不明な場合は null を返します。 |
DispatcherType | getDispatcherType() このリクエストのディスパッチャー型を取得します。 |
ServletInputStream | getInputStream() ServletInputStream を使用して、リクエストの本文をバイナリデータとして取得します。 |
StringSE | getLocalAddr() リクエストが受信されたインターフェースのインターネットプロトコル(IP)アドレスを返します。 |
LocaleSE | getLocale() Accept-Language ヘッダーに基づいて、クライアントがコンテンツを受け入れる優先 Locale を返します。 |
EnumerationSE<LocaleSE> | getLocales() Locale オブジェクトの Enumeration を返します。優先ロケールで始まる降順で、Accept-Language ヘッダーに基づいてクライアントが受け入れ可能なロケールを示します。 |
StringSE | getLocalName() リクエストが受信されたインターネットプロトコル(IP)インターフェースのホスト名を返します。 |
int | getLocalPort() リクエストが受信されたインターフェースのインターネットプロトコル(IP)ポート番号を返します。 |
StringSE | getParameter(StringSE name) リクエストパラメーターの値を String として返します。パラメーターが存在しない場合は null を返します。 |
MapSE<StringSE, StringSE[]> | getParameterMap() このリクエストのパラメーターの java.util.Map を返します。 |
EnumerationSE<StringSE> | getParameterNames() このリクエストに含まれるパラメーターの名前を含む String オブジェクトの Enumeration を返します。 |
StringSE[] | getParameterValues(StringSE name) 指定されたリクエストパラメーターが持つすべての値を含む String オブジェクトの配列、またはパラメーターが存在しない場合は null を返します。 |
StringSE | getProtocol() リクエストが使用するプロトコルの名前とバージョンを、protocol/majorVersion.minorVersion の形式で返します (例: HTTP/1.1)。 |
BufferedReaderSE | getReader() BufferedReader を使用して、リクエストの本文を文字データとして取得します。 |
StringSE | getRealPath(StringSE path) 使用すべきではありません。 Java Servlet API のバージョン 2.1 以降では、代わりに ServletContext.getRealPath(java.lang.String) を使用してください。 |
StringSE | getRemoteAddr() クライアントまたはリクエストを送信した最後のプロキシのインターネットプロトコル(IP)アドレスを返します。 |
StringSE | getRemoteHost() クライアントまたはリクエストを送信した最後のプロキシの完全修飾名を返します。 |
int | getRemotePort() クライアントまたはリクエストを送信した最後のプロキシのインターネットプロトコル(IP)ソースポートを返します。 |
RequestDispatcher | getRequestDispatcher(StringSE path) 指定されたパスにあるリソースのラッパーとして機能する RequestDispatcher オブジェクトを返します。 |
StringSE | getScheme() このリクエストを行うために使用されたスキームの名前を返します(例: http 、https 、ftp )。 |
StringSE | getServerName() リクエストが送信されたサーバーのホスト名を返します。 |
int | getServerPort() リクエストが送信されたポート番号を返します。 |
ServletContext | getServletContext() この ServletRequest が最後にディスパッチされたサーブレットコンテキストを取得します。 |
boolean | isAsyncStarted() このリクエストが非同期モードになっているかどうかを確認します。 |
boolean | isAsyncSupported() このリクエストが非同期操作をサポートしているかどうかを確認します。 |
boolean | isSecure() このリクエストが HTTPS などの安全なチャネルを使用して行われたかどうかを示すブール値を返します。 |
void | removeAttribute(StringSE name) このリクエストから属性を削除します。 |
void | setAttribute(StringSE name, ObjectSE o) このリクエストに属性を保存します。 |
void | setCharacterEncoding(StringSE env) このリクエストの本文で使用される文字エンコーディングの名前をオーバーライドします。 |
AsyncContext | startAsync() このリクエストを非同期モードにし、その AsyncContext を元の(ラップされていない)ServletRequest および ServletResponse オブジェクトで初期化します。 |
AsyncContext | startAsync(ServletRequest servletRequest, ServletResponse servletResponse) このリクエストを非同期モードにし、指定されたリクエストオブジェクトとレスポンスオブジェクトで AsyncContext を初期化します。 |
ObjectSE getAttribute(StringSE name)
Object
、null
として返します。 属性は 2 つの方法で設定できます。サーブレットコンテナーは、リクエストに関するカスタム情報を利用できるように属性を設定できます。例: HTTPS を使用して行われたリクエストの場合、属性 jakarta.servlet.request.X509Certificate
を使用して、クライアントの証明書に関する情報を取得できます。属性は、setAttribute(java.lang.String, java.lang.Object)
を使用してプログラムで設定することもできます。これにより、RequestDispatcher
呼び出しの前に情報をリクエストに埋め込むことができます。
属性名は、パッケージ名と同じ規則に従う必要があります。この仕様は、java.*
、javax.*
、sun.*
に一致する名前を予約します。
name
- 属性の名前を指定する String
Object
、または属性が存在しない場合は null
EnumerationSE<StringSE> getAttributeNames()
Enumeration
を返します。リクエストに使用可能な属性がない場合、このメソッドは空の Enumeration
を返します。Enumeration
StringSE getCharacterEncoding()
null
を返します。リクエストの文字エンコーディングを指定するために、優先度の降順で、リクエストごと、Web アプリごと(ServletContext.setRequestCharacterEncoding(java.lang.String)
、デプロイ記述子を使用)、コンテナーごと(ベンダー固有の構成を使用して、そのコンテナーにデプロイされたすべての Web アプリケーション)が指定されます。String
、またはリクエストで文字エンコードが指定されていない場合は null
void setCharacterEncoding(StringSE env) throws UnsupportedEncodingExceptionSE
env
- 文字エンコードの名前を含む String
。UnsupportedEncodingExceptionSE
- この ServletRequest がまだ文字エンコーディングを設定できる状態にあるが、指定されたエンコーディングが無効な場合 int getContentLength()
long getContentLengthLong()
StringSE getContentType()
null
を返します。HTTP サーブレットの場合、CGI 変数 CONTENT_TYPE の値と同じ。String
、または型が不明の場合は nullServletInputStream getInputStream() throws IOExceptionSE
ServletInputStream
を使用して、リクエストの本文をバイナリデータとして取得します。このメソッドまたは getReader()
のいずれかを呼び出して、本体を読み取ることができますが、両方はできません。ServletInputStream
オブジェクト IllegalStateExceptionSE
- getReader()
メソッドがこのリクエストに対してすでに呼び出されている場合 IOExceptionSE
- 入力または出力の例外が発生した場合 StringSE getParameter(StringSE name)
String
として返します。パラメーターが存在しない場合は null
を返します。リクエストパラメーターは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメーターはクエリ文字列または投稿されたフォームデータに含まれます。 パラメーターに値が 1 つしかないことが確実な場合にのみ、このメソッドを使用してください。パラメーターに複数の値がある場合は、getParameterValues(java.lang.String)
を使用します。
このメソッドを複数値パラメーターで使用する場合、返される値は getParameterValues
によって返される配列の最初の値と等しくなります。
HTTP POST リクエストで発生するなど、パラメーターデータがリクエスト本文で送信された場合、getInputStream()
または getReader()
を介して直接本文を読み取ると、このメソッドの実行が妨げられる可能性があります。
name
- パラメーターの名前を指定する String
String
getParameterValues(java.lang.String)
EnumerationSE<StringSE> getParameterNames()
String
オブジェクトの Enumeration
を返します。リクエストにパラメーターがない場合、メソッドは空の Enumeration
を返します。String
オブジェクトの Enumeration
。各 String
にはリクエストパラメーターの名前が含まれます。またはリクエストにパラメーターがない場合は空の Enumeration
StringSE[] getParameterValues(StringSE name)
String
オブジェクトの配列、またはパラメーターが存在しない場合は null
を返します。パラメーターの値が 1 つの場合、配列の長さは 1 です。
name
- 値がリクエストされるパラメーターの名前を含む String
String
オブジェクトの配列 getParameter(java.lang.String)
MapSE<StringSE,StringSE[]> getParameterMap()
リクエストパラメーターは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメーターはクエリ文字列または投稿されたフォームデータに含まれます。
StringSE getProtocol()
SERVER_PROTOCOL
の値と同じです。String
StringSE getScheme()
http
、https
、ftp
)。RFC 1738 に記載されているように、スキームが異なれば、URL を構築するためのルールも異なります。String
StringSE getServerName()
Host
ヘッダー値(ある場合)、または解決されたサーバー名、サーバー IP アドレスの ":" の前の部分の値です。String
int getServerPort()
Host
ヘッダー値の ":" の後の部分の値、またはクライアント接続が受け入れられたサーバーポートです。BufferedReaderSE getReader() throws IOExceptionSE
BufferedReader
を使用して、リクエストの本文を文字データとして取得します。リーダーは、本文で使用される文字エンコーディングに従って文字データを変換します。このメソッドまたは getInputStream()
のいずれかを呼び出して、本体を読み取ることができますが、両方はできません。BufferedReader
UnsupportedEncodingExceptionSE
- 使用されている文字セットエンコーディングがサポートされておらず、テキストをデコードできない場合 IllegalStateExceptionSE
- このリクエストで getInputStream()
メソッドが呼び出された場合 IOExceptionSE
- 入力または出力の例外が発生した場合 getInputStream()
StringSE getRemoteAddr()
REMOTE_ADDR
の値と同じ。String
StringSE getRemoteHost()
REMOTE_HOST
の値と同じ。String
void setAttribute(StringSE name, ObjectSE o)
RequestDispatcher
と組み合わせて使用されます。 属性名は、パッケージ名と同じ規則に従う必要があります。
渡されたオブジェクトが null の場合、効果は removeAttribute(java.lang.String)
を呼び出した場合と同じです。
サーブレットからリクエストが RequestDispatcher
によって別の Web アプリケーションにある場合、このメソッドで設定されたオブジェクトは呼び出し元サーブレットで正しく取得されない可能性があることに注意してください。
name
- 属性の名前を指定する String
o
- 格納される Object
void removeAttribute(StringSE name)
属性名は、パッケージ名と同じ規則に従う必要があります。java.*
、javax.*
、com.sun.*
で始まる名前は、SunMicrosystems が使用するために予約されています。
name
- 削除する属性の名前を指定する String
LocaleSE getLocale()
Locale
を返します。クライアントリクエストが Accept-Language ヘッダーを提供しない場合、このメソッドはサーバーのデフォルトロケールを返します。Locale
EnumerationSE<LocaleSE> getLocales()
Locale
オブジェクトの Enumeration
を返します。優先ロケールで始まる降順で、Accept-Language ヘッダーに基づいてクライアントが受け入れ可能なロケールを示します。クライアントリクエストが Accept-Language ヘッダーを提供しない場合、このメソッドは、サーバーのデフォルトロケールである Locale
を 1 つ含む Enumeration
を返します。Locale
オブジェクトの Enumeration
boolean isSecure()
RequestDispatcher getRequestDispatcher(StringSE path)
RequestDispatcher
オブジェクトを返します。RequestDispatcher
オブジェクトを使用して、リクエストをリソースに転送したり、レスポンスにリソースを含めることができます。リソースは動的でも静的でもかまいません。 指定されたパス名は相対パスである場合がありますが、現在のサーブレットコンテキストの外側には拡張できません。パスが "/" で始まる場合、現在のコンテキストルートを基準として解釈されます。サーブレットコンテナーが RequestDispatcher
を返すことができない場合、このメソッドは null
を返します。
RequestDispatcher を使用すると、暗黙的(WEB-INF または META-INF への直接アクセスなし)および明示的(Web アプリケーションで定義された)セキュリティ制約の両方をバイパスして、Web アプリケーションの任意の部分にリクエストをディスパッチできます。サニタイズされていないユーザー提供データは、RequestDispatcher に渡されるパスを構築するために使用しないでください。アプリケーションにセキュリティの脆弱性が生じる可能性が非常に高いためです。
このメソッドと ServletContext.getRequestDispatcher(java.lang.String)
の違いは、このメソッドが相対パスを使用できることです。
path
- リソースへのパス名を指定する String
。相対的な場合は、現在のサーブレットに対して相対的でなければなりません。RequestDispatcher
オブジェクト、またはサーブレットコンテナーが RequestDispatcher
を返せない場合は null
RequestDispatcher
, ServletContext.getRequestDispatcher(java.lang.String)
@DeprecatedSE StringSE getRealPath(StringSE path)
ServletContext.getRealPath(java.lang.String)
を使用してください。path
- 実際のパスが返されるパス。int getRemotePort()
StringSE getLocalName()
String
。StringSE getLocalAddr()
String
。int getLocalPort()
ServletContext getServletContext()
AsyncContext startAsync() throws IllegalStateExceptionSE
AsyncContext
を元の(ラップされていない)ServletRequest および ServletResponse オブジェクトで初期化します。 このメソッドを呼び出すと、返された AsyncContext
で AsyncContext.complete()
が呼び出されるか、非同期操作がタイムアウトするまで、関連するレスポンスのコミットが遅延します。
返された AsyncContext で AsyncContext.hasOriginalRequestAndResponse()
を呼び出すと、true
が返されます。このリクエストが非同期モードになった後、 送信方向で呼び出されるフィルターは、 受信呼び出し中に追加したリクエストおよび / またはレスポンスラッパーが非同期操作の期間中に留まる必要がないことを示すものとしてこれを使用できます。関連するリソースのいずれかが解放される場合があります。
このメソッドは、各 AsyncListener をその onStartAsync
メソッドで呼び出した後、startAsync メソッドの 1 つへの前回の呼び出しによって返された AsyncContext に登録された AsyncListener
インスタンス (存在する場合) のリストをクリアします。
このメソッドの後続の呼び出し、またはそのオーバーロードされたバリアントは、同じ AsyncContext インスタンスを返し、必要に応じて再初期化されます。
IllegalStateExceptionSE
- このリクエストが、非同期操作をサポートしないフィルターまたはサーブレットの範囲内にある場合(つまり、isAsyncSupported()
が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch()
メソッドのいずれかにより)が呼び出されるそのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合 AsyncContext.dispatch()
AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateExceptionSE
AsyncContext
を初期化します。ServletRequest および ServletResponse 引数は、サーブレットの service
メソッドまたはフィルターの doFilter
メソッドに渡された同じインスタンス、またはそれらをラップする ServletRequestWrapper
および ServletResponseWrapper
のインスタンスである必要があり、それぞれこのメソッドが呼び出されます。
このメソッドを呼び出すと、返された AsyncContext
で AsyncContext.complete()
が呼び出されるか、非同期操作がタイムアウトするまで、関連するレスポンスのコミットが遅延します。
返された AsyncContext で AsyncContext.hasOriginalRequestAndResponse()
を呼び出すと、渡された ServletRequest および ServletResponse 引数が元の引数であるか、アプリケーション提供のラッパーを持たない限り、false
を返します。このリクエストが非同期モードになった後、 送信方向で呼び出されるフィルターは、 受信呼び出し中に追加したリクエストおよび / またはレスポンスラッパーの一部が非同期の期間中、その場所に留まる必要があることを示すものとしてこれを使用する場合があります。操作、および関連するリソースは解放されない可能性があります。フィルターの受信呼び出し中に適用された ServletRequestWrapper は、AsyncContext を初期化するために使用され、AsyncContext.getRequest()
の呼び出しによって返される特定の servletRequest
が上記の ServletRequestWrapper を含まない場合にのみ、フィルターの送信呼び出しによって解放されます。同じことが ServletResponseWrapper インスタンスにも当てはまります。
このメソッドは、各 AsyncListener をその onStartAsync
メソッドで呼び出した後、startAsync メソッドの 1 つへの前回の呼び出しによって返された AsyncContext に登録された AsyncListener
インスタンス (存在する場合) のリストをクリアします。
このメソッドまたはその引数ゼロのバリアントの後続の呼び出しは、同じ AsyncContext インスタンスを返し、必要に応じて再初期化されます。このメソッドの呼び出しの後に引数なしのバリアントへの呼び出しが続く場合、指定された(ラップされている可能性がある)リクエストおよびレスポンスオブジェクトは、返された AsyncContext でロックされたままになります。
servletRequest
- AsyncContext の初期化に使用される ServletRequestservletResponse
- AsyncContext の初期化に使用される ServletResponseIllegalStateExceptionSE
- このリクエストが、非同期操作をサポートしないフィルターまたはサーブレットの範囲内にある場合(つまり、isAsyncSupported()
が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch()
メソッドのいずれかにより)が呼び出されるそのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合 boolean isAsyncStarted()
ServletRequest は、startAsync()
または startAsync(ServletRequest,ServletResponse)
を呼び出すことで非同期モードになります。
このリクエストが非同期モードになった場合、このメソッドは false を返しますが、その後 AsyncContext.dispatch()
メソッドのいずれかを使用してディスパッチされたか、AsyncContext.complete()
の呼び出しを介して非同期モードからリリースされました。
boolean isAsyncSupported()
このリクエストが、デプロイ記述子で非同期処理をサポートできるとしてアノテーションまたはフラグが付けられていないフィルターまたはサーブレットのスコープ内にある場合、このリクエストの非同期操作は無効になります。
AsyncContext getAsyncContext()
startAsync()
または startAsync(ServletRequest,ServletResponse)
の最新の呼び出しによって作成または再初期化された AsyncContext を取得します。startAsync()
または startAsync(ServletRequest,ServletResponse)
の最新の呼び出しによって作成または再初期化された AsyncContextIllegalStateExceptionSE
- このリクエストが非同期モードになっていない場合、つまり startAsync()
も startAsync(ServletRequest,ServletResponse)
も呼び出されていない場合 DispatcherType getDispatcherType()
コンテナーは、リクエストのディスパッチャー型を使用して、リクエストに適用する必要があるフィルターを選択します。一致するディスパッチャー型と URL パターンを持つフィルターのみが適用されます。
複数のディスパッチャー型用に設定されたフィルターを使用して、そのディスパッチャー型のリクエストを照会できるようにすることで、フィルターはディスパッチャー型に応じて異なる方法でリクエストを処理できます。
リクエストの初期ディスパッチャー型は DispatcherType.REQUEST
として定義されます。RequestDispatcher.forward(ServletRequest, ServletResponse)
または RequestDispatcher.include(ServletRequest, ServletResponse)
を介してディスパッチされたリクエストのディスパッチャー型は、それぞれ DispatcherType.FORWARD
または DispatcherType.INCLUDE
として提供され、AsyncContext.dispatch()
メソッドの 1 つを介してディスパッチされた非同期リクエストのディスパッチャー型は DispatcherType.ASYNC
として提供されます。最後に、コンテナーのエラー処理メカニズムによってエラーページにディスパッチされたリクエストのディスパッチャー型は、DispatcherType.ERROR
として指定されます。
DispatcherType
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.