インターフェース ServletRequest
- すべての既知のサブインターフェース:
HttpServletRequest
- すべての既知の実装クラス:
HttpServletRequestWrapper
,ServletRequestWrapper
public interface ServletRequest
クライアントリクエスト情報をサーブレットに提供するオブジェクトを定義します。サーブレットコンテナーはServletRequest
オブジェクトを作成し、それを引数としてサーブレットのservice
メソッドに渡します。ServletRequest
オブジェクトは、パラメーター名と値、属性、入力ストリームなどのデータを提供します。ServletRequest
を継承するインターフェースは、追加のプロトコル固有のデータを提供できます(たとえば、HTTP データはHttpServletRequest
によって提供されます)。- 作成者:
- Various
- 関連事項:
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()
リクエスト本体の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明の場合は -1StringSE
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()
getLocalAddr()
によって返されるアドレスの完全修飾名を返します。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)。StringSE
getProtocolRequestId()
使用中のプロトコルで定義されているように、このリクエストのリクエスト識別子を取得します。BufferedReaderSE
getReader()
BufferedReader
を使用して、リクエストの本文を文字データとして取得します。StringSE
getRemoteAddr()
リクエストを受信した接続の リモート側のインターネットプロトコル (IP) を返します。StringSE
getRemoteHost()
getRemoteAddr()
によって返されるアドレスの完全修飾名を返します。int
getRemotePort()
リクエストを受信した接続の リモート側のインターネットプロトコル (IP) ソースポートを返します。RequestDispatcher
getRequestDispatcher(StringSE path)
指定されたパスにあるリソースのラッパーとして機能するRequestDispatcher
オブジェクトを返します。StringSE
getRequestId()
このリクエストの一意の (サーブレットコンテナーの有効期間内の) 識別子文字列を取得します。StringSE
getScheme()
このリクエストを行うために使用されたスキームの名前を返します(例:http
、https
、ftp
)。StringSE
getServerName()
リクエストが送信されたサーバーのホスト名を返します。int
getServerPort()
リクエストが送信されたポート番号を返します。ServletConnection
getServletConnection()
このリクエストで使用されているサーブレットコンテナーへのネットワーク接続の詳細を取得します。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
を初期化します。
メソッドの詳細
getAttribute
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
getAttributeNames
EnumerationSE<StringSE> getAttributeNames()
このリクエストで使用可能な属性の名前を含むEnumeration
を返します。リクエストに使用可能な属性がない場合、このメソッドは空のEnumeration
を返します。- 戻り値:
- リクエストの属性の名前を含む文字列の
Enumeration
getCharacterEncoding
StringSE getCharacterEncoding()
このリクエストの本文で使用される文字エンコーディングの名前を返します。このメソッドは、文字エンコーディングをエンコードするリクエストが指定されていない場合、null
を返します。リクエストの文字エンコーディングを指定するために、優先度の降順で、リクエストごと、Web アプリごと(ServletContext.setRequestCharacterEncoding(java.lang.String)
、デプロイ記述子を使用)、コンテナーごと(ベンダー固有の構成を使用して、そのコンテナーにデプロイされたすべての Web アプリケーション)が指定されます。- 戻り値:
- 文字エンコードの名前を含む
String
、またはリクエストで文字エンコードが指定されていない場合はnull
setCharacterEncoding
void setCharacterEncoding(StringSE env) throws UnsupportedEncodingExceptionSE
このリクエストの本文で使用される文字エンコーディングの名前をオーバーライドします。このメソッドは、リクエストパラメーターの読み取りまたは getReader() を使用した入力の読み取りの前に呼び出す必要があります。それ以外の場合、効果はありません。- パラメーター:
env
- 文字エンコードの名前を含むString
。- 例外:
UnsupportedEncodingExceptionSE
- この ServletRequest がまだ文字エンコーディングを設定できる状態にあるが、指定されたエンコーディングが無効な場合
getContentLength
int getContentLength()
リクエスト本文の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明または Integer.MAX_VALUE より大きい場合は -1 を返します。- 戻り値:
- リクエストボディの長さを含む整数。長さが不明の場合、または Integer.MAX_VALUE より大きい場合は -1。
getContentLengthLong
long getContentLengthLong()
リクエスト本体の長さをバイト単位で返し、入力ストリームで使用可能にします。長さが不明の場合は -1- 戻り値:
- リクエスト本体の長さを含む long、または長さが不明な場合は -1L
- 導入:
- Servlet 3.1
getContentType
StringSE getContentType()
リクエストの本文の MIME 型を返します。型が不明な場合はnull
を返します。- 戻り値:
- リクエストの MIME 型の名前を含む
String
、または型が不明の場合は null
getInputStream
ServletInputStream getInputStream() throws IOExceptionSE
ServletInputStream
を使用して、リクエストの本文をバイナリデータとして取得します。このメソッドまたはgetReader()
のいずれかを呼び出して、本体を読み取ることができますが、両方はできません。- 戻り値:
- リクエストの本文を含む
ServletInputStream
オブジェクト - 例外:
IllegalStateExceptionSE
-getReader()
メソッドがこのリクエストに対してすでに呼び出されている場合IOExceptionSE
- 入力または出力の例外が発生した場合
getParameter
StringSE getParameter(StringSE name)
リクエストパラメーターの値をString
として返します。パラメーターが存在しない場合はnull
を返します。リクエストパラメーターは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメーターはクエリ文字列または投稿されたフォームデータに含まれます。パラメーターに値が 1 つしかないことが確実な場合にのみ、このメソッドを使用してください。パラメーターに複数の値がある場合は、
getParameterValues(java.lang.String)
を使用します。このメソッドを複数値パラメーターで使用する場合、返される値は
getParameterValues
によって返される配列の最初の値と等しくなります。HTTP POST リクエストで発生するなど、パラメーターデータがリクエスト本文で送信された場合、
getInputStream()
またはgetReader()
を介して直接本文を読み取ると、このメソッドの実行が妨げられる可能性があります。- パラメーター:
name
- パラメーターの名前を指定するString
- 戻り値:
- パラメーターの単一の値を表す
String
- 関連事項:
getParameterValues(java.lang.String)
getParameterNames
EnumerationSE<StringSE> getParameterNames()
このリクエストに含まれるパラメーターの名前を含むString
オブジェクトのEnumeration
を返します。リクエストにパラメーターがない場合、メソッドは空のEnumeration
を返します。- 戻り値:
String
オブジェクトのEnumeration
。各String
にはリクエストパラメーターの名前が含まれます。またはリクエストにパラメーターがない場合は空のEnumeration
getParameterValues
StringSE[] getParameterValues(StringSE name)
指定されたリクエストパラメーターが持つすべての値を含むString
オブジェクトの配列、またはパラメーターが存在しない場合はnull
を返します。パラメーターの値が 1 つの場合、配列の長さは 1 です。
- パラメーター:
name
- 値がリクエストされるパラメーターの名前を含むString
- 戻り値:
- パラメーターの値を含む
String
オブジェクトの配列 - 関連事項:
getParameter(java.lang.String)
getParameterMap
MapSE<StringSE,StringSE[]> getParameterMap()
このリクエストのパラメーターの java.util.Map を返します。リクエストパラメーターは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメーターはクエリ文字列または投稿されたフォームデータに含まれます。
- 戻り値:
- パラメーター名をキーとして、パラメーター値をマップ値として含む不変の java.util.Map。パラメーターマップのキーは String 型です。パラメーターマップの値は String 型です。
getProtocol
StringSE getProtocol()
リクエストが使用するプロトコルの名前とバージョンを、protocol/majorVersion.minorVersion の形式で返します (例: HTTP/1.1)。- 戻り値:
- プロトコル名とバージョン番号を含む
String
getScheme
StringSE getScheme()
このリクエストを行うために使用されたスキームの名前を返します(例:http
、https
、ftp
)。RFC 1738 に記載されているように、スキームが異なれば、URL を構築するためのルールも異なります。- 戻り値:
- このリクエストを行うために使用されるスキームの名前を含む
String
getServerName
StringSE getServerName()
リクエストが送信されたサーバーのホスト名を返します。これは、Host
ヘッダー、HTTP/2 オーソリティ、または RFC 7239 などのプロトコル固有のメカニズムから導出される場合があります。それ以外の場合は、解決されたサーバー名またはサーバー IP アドレスです。- 戻り値:
- サーバーの名前を含む
String
getServerPort
int getServerPort()
リクエストが送信されたポート番号を返します。これは、Host
ヘッダー、HTTP オーソリティ、または RFC 7239 などのプロトコル固有のメカニズムから派生する場合があります。それ以外の場合は、クライアント接続が受け入れられたサーバーポートです。- 戻り値:
- ポート番号を指定する整数
getReader
BufferedReaderSE getReader() throws IOExceptionSE
BufferedReader
を使用して、リクエストの本文を文字データとして取得します。リーダーは、本文で使用される文字エンコーディングに従って文字データを変換します。このメソッドまたはgetInputStream()
のいずれかを呼び出して、本体を読み取ることができますが、両方はできません。- 戻り値:
- リクエストの本文を含む
BufferedReader
- 例外:
UnsupportedEncodingExceptionSE
- 使用されている文字セットエンコーディングがサポートされておらず、テキストをデコードできない場合IllegalStateExceptionSE
- このリクエストでgetInputStream()
メソッドが呼び出された場合IOExceptionSE
- 入力または出力の例外が発生した場合- 関連事項:
getInputStream()
getRemoteAddr
StringSE getRemoteAddr()
リクエストを受信した接続の リモート側のインターネットプロトコル (IP) を返します。デフォルトでは、これはリクエストを送信したクライアントまたは最後のプロキシのアドレスです。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のアドレスとは異なるアドレスを取得することがあります。- 戻り値:
- IP アドレスを含む
String
getRemoteHost
StringSE getRemoteHost()
getRemoteAddr()
によって返されるアドレスの完全修飾名を返します。エンジンが (パフォーマンスを向上させるために) ホスト名を解決できない場合、または解決しないことを選択した場合、このメソッドは IP アドレスを返します。- 戻り値:
- 完全修飾名または IP アドレスを含む
String
。
setAttribute
void setAttribute(StringSE name, ObjectSE o)
このリクエストに属性を保存します。属性はリクエスト間でリセットされます。この方法は、ほとんどの場合RequestDispatcher
と組み合わせて使用されます。属性名は、パッケージ名と同じ規則に従う必要があります。
渡されたオブジェクトが null の場合、効果はremoveAttribute(java.lang.String)
を呼び出した場合と同じです。
サーブレットからリクエストがRequestDispatcher
によって別の Web アプリケーションにある場合、このメソッドで設定されたオブジェクトは呼び出し元サーブレットで正しく取得されない可能性があることに注意してください。- パラメーター:
name
- 属性の名前を指定するString
o
- 格納されるObject
removeAttribute
void removeAttribute(StringSE name)
このリクエストから属性を削除します。属性はリクエストが処理されている間のみ持続するため、このメソッドは通常必要ありません。属性名は、パッケージ名と同じ規則に従う必要があります。
java.*
、javax.*
、com.sun.*
で始まる名前は、SunMicrosystems が使用するために予約されています。- パラメーター:
name
- 削除する属性の名前を指定するString
getLocale
LocaleSE getLocale()
Accept-Language ヘッダーに基づいて、クライアントがコンテンツを受け入れる優先Locale
を返します。クライアントリクエストが Accept-Language ヘッダーを提供しない場合、このメソッドはサーバーのデフォルトロケールを返します。- 戻り値:
- クライアントの優先
Locale
getLocales
EnumerationSE<LocaleSE> getLocales()
Locale
オブジェクトのEnumeration
を返します。優先ロケールで始まる降順で、Accept-Language ヘッダーに基づいてクライアントが受け入れ可能なロケールを示します。クライアントリクエストが Accept-Language ヘッダーを提供しない場合、このメソッドは、サーバーのデフォルトロケールであるLocale
を 1 つ含むEnumeration
を返します。- 戻り値:
- クライアントの優先
Locale
オブジェクトのEnumeration
isSecure
boolean isSecure()
このリクエストが HTTPS などの安全なチャネルを使用して行われたかどうかを示すブール値を返します。- 戻り値:
- 安全なチャネルを使用してリクエストが行われたかどうかを示すブール値
getRequestDispatcher
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)
getRemotePort
int getRemotePort()
リクエストを受信した接続の リモート側のインターネットプロトコル (IP) ソースポートを返します。デフォルトでは、これはリクエストを送信したクライアントまたは最後のプロキシのポートです。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のポートとは異なるポートを取得することがあります。- 戻り値:
- ポート番号を指定する整数
- 導入:
- Servlet 2.4
getLocalName
StringSE getLocalName()
getLocalAddr()
によって返されるアドレスの完全修飾名を返します。エンジンが (パフォーマンスを向上させるために) ホスト名を解決できない場合、または解決しないことを選択した場合、このメソッドは IP アドレスを返します。- 戻り値:
- リクエストが受信された IP のホスト名を含む
String
。 - 導入:
- Servlet 2.4
getLocalAddr
StringSE getLocalAddr()
リクエストを受信したインターフェースを表すインターネットプロトコル (IP) アドレスを返します。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のアドレスとは異なるアドレスを取得することがあります。- 戻り値:
- IP アドレスを含む
String
。 - 導入:
- Servlet 2.4
getLocalPort
int getLocalPort()
リクエストを受信したインターフェースを表すインターネットプロトコル (IP) ポート番号を返します。場合によっては、RFC 7239 などのプロトコル固有のメカニズムを使用して、実際の TCP/IP 接続のアドレスとは異なるアドレスを取得することがあります。- 戻り値:
- ポート番号を指定する整数
- 導入:
- Servlet 2.4
getServletContext
ServletContext getServletContext()
この ServletRequest が最後にディスパッチされたサーブレットコンテキストを取得します。- 戻り値:
- この ServletRequest が最後にディスパッチされたサーブレットコンテキスト
- 導入:
- Servlet 3.0
startAsync
AsyncContext startAsync() throws IllegalStateExceptionSE
このリクエストを非同期モードにし、そのAsyncContext
を元の(ラップされていない)ServletRequest および ServletResponse オブジェクトで初期化します。このメソッドを呼び出すと、返された
AsyncContext
でAsyncContext.complete()
が呼び出されるか、非同期操作がタイムアウトするまで、関連するレスポンスのコミットが遅延します。返された AsyncContext で
AsyncContext.hasOriginalRequestAndResponse()
を呼び出すと、true
が返されます。このリクエストが非同期モードになった後、 送信方向で呼び出されるフィルターは、 受信呼び出し中に追加したリクエストおよび / またはレスポンスラッパーが非同期操作の期間中に留まる必要がないことを示すものとしてこれを使用できます。関連するリソースのいずれかが解放される場合があります。このメソッドは、各 AsyncListener をその
onStartAsync
メソッドで呼び出した後、startAsync メソッドの 1 つへの前回の呼び出しによって返された AsyncContext に登録されたAsyncListener
インスタンス (存在する場合) のリストをクリアします。このメソッドの後続の呼び出し、またはそのオーバーロードされたバリアントは、同じ AsyncContext インスタンスを返し、必要に応じて再初期化されます。
- 戻り値:
- (再)初期化された AsyncContext
- 例外:
IllegalStateExceptionSE
- このリクエストが、非同期操作をサポートしないフィルターまたはサーブレットの範囲内にある場合(つまり、isAsyncSupported()
が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch()
メソッドのいずれかにより)が呼び出されるそのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合- 導入:
- Servlet 3.0
- 関連事項:
AsyncContext.dispatch()
startAsync
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 の初期化に使用される ServletResponse- 戻り値:
- (再)初期化された AsyncContext
- 例外:
IllegalStateExceptionSE
- このリクエストが、非同期操作をサポートしないフィルターまたはサーブレットの範囲内にある場合(つまり、isAsyncSupported()
が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch()
メソッドのいずれかにより)が呼び出されるそのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合- 導入:
- Servlet 3.0
isAsyncStarted
boolean isAsyncStarted()
このリクエストが非同期モードになっているかどうかを確認します。ServletRequest は、
startAsync()
またはstartAsync(ServletRequest,ServletResponse)
を呼び出すことで非同期モードになります。このリクエストが非同期モードに設定された後、
AsyncContext.dispatch()
メソッドの 1 つを使用してディスパッチされたか、AsyncContext.complete()
の呼び出しによって非同期モードから解放された場合、このメソッドは false を返します。startAsync()
を呼び出したコンテナー開始ディスパッチがコンテナーに戻る前にAsyncContext.dispatch()
またはAsyncContext.complete()
が呼び出された場合、startAsync()
を呼び出したコンテナー開始ディスパッチがコンテナーに戻るまで、このメソッドはtrue
を返さなければなりません。- 戻り値:
- このリクエストが非同期モードになっている場合は true、そうでない場合は false
- 導入:
- Servlet 3.0
isAsyncSupported
boolean isAsyncSupported()
このリクエストが非同期操作をサポートしているかどうかを確認します。このリクエストが、デプロイ記述子で非同期処理をサポートできるとしてアノテーションまたはフラグが付けられていないフィルターまたはサーブレットのスコープ内にある場合、このリクエストの非同期操作は無効になります。
- 戻り値:
- このリクエストが非同期操作をサポートする場合は true、そうでない場合は false
- 導入:
- Servlet 3.0
getAsyncContext
AsyncContext getAsyncContext()
このリクエストでstartAsync()
またはstartAsync(ServletRequest,ServletResponse)
の最新の呼び出しによって作成または再初期化された AsyncContext を取得します。- 戻り値:
- このリクエストでの
startAsync()
またはstartAsync(ServletRequest,ServletResponse)
の最新の呼び出しによって作成または再初期化された AsyncContext - 例外:
IllegalStateExceptionSE
- このリクエストが非同期モードになっていない場合、つまりstartAsync()
もstartAsync(ServletRequest,ServletResponse)
も呼び出されていない場合- 導入:
- Servlet 3.0
getDispatcherType
DispatcherType getDispatcherType()
このリクエストのディスパッチャー型を取得します。コンテナーは、リクエストのディスパッチャー型を使用して、リクエストに適用する必要があるフィルターを選択します。一致するディスパッチャー型と URL パターンを持つフィルターのみが適用されます。
複数のディスパッチャー型用に設定されたフィルターを使用して、そのディスパッチャー型のリクエストを照会できるようにすることで、フィルターはディスパッチャー型に応じて異なる方法でリクエストを処理できます。
リクエストの初期ディスパッチャー型は
DispatcherType.REQUEST
として定義されます。RequestDispatcher.forward(ServletRequest, ServletResponse)
またはRequestDispatcher.include(ServletRequest, ServletResponse)
を介してディスパッチされたリクエストのディスパッチャー型は、それぞれDispatcherType.FORWARD
またはDispatcherType.INCLUDE
として提供され、AsyncContext.dispatch()
メソッドの 1 つを介してディスパッチされた非同期リクエストのディスパッチャー型はDispatcherType.ASYNC
として提供されます。最後に、コンテナーのエラー処理メカニズムによってエラーページにディスパッチされたリクエストのディスパッチャー型は、DispatcherType.ERROR
として指定されます。- 戻り値:
- このリクエストのディスパッチャー型
- 導入:
- Servlet 3.0
- 関連事項:
DispatcherType
getRequestId
StringSE getRequestId()
このリクエストの一意の (サーブレットコンテナーの有効期間内の) 識別子文字列を取得します。この文字列には定義された形式はありません。形式は実装に依存します。
- 戻り値:
- リクエストの一意の識別子
- 導入:
- Servlet 6.0
getProtocolRequestId
StringSE getProtocolRequestId()
使用中のプロトコルで定義されているように、このリクエストのリクエスト識別子を取得します。一部のプロトコルでは、そのような識別子が定義されていないことに注意してください。プロトコル提供のリクエスト識別子の例には、次のものがあります。
- HTTP 1.x
- なし。空の文字列を返す必要があります
- HTTP 2
- ストリーム識別子
- HTTP 3
- ストリーム識別子
- AJP
- なし。空の文字列を返す必要があります
- 戻り値:
- 定義されている場合はリクエスト識別子、そうでない場合は空の文字列
- 導入:
- Servlet 6.0
getServletConnection
ServletConnection getServletConnection()
このリクエストで使用されているサーブレットコンテナーへのネットワーク接続の詳細を取得します。生の情報は、サーブレット API の他の場所で適用されるリバースプロキシの使用などの調整なしで提供されるため、提示される情報は、サーブレット API の他の場所で提示される情報とは異なる場合があります。- 戻り値:
- ネットワーク接続の詳細。
- 導入:
- Servlet 6.0