インターフェース ServerRequest
public interface ServerRequest
HandlerFunction
で処理されるサーバー側の HTTP リクエストを表します。ヘッダーと本文へのアクセスは、それぞれ ServerRequest.Headers
と body(Class)
によって提供されます。- 導入:
- 5.2
- 作成者:
- Arjen Poutsma
ネストされたクラスのサマリー
修飾子と型インターフェース説明static interface
リクエストのビルダーを定義します。static interface
HTTP リクエストのヘッダーを表します。方法の概要
修飾子と型メソッド説明default OptionalSE<ObjectSE>
リクエスト属性値が存在する場合は取得します。リクエスト属性の可変マップを取得します。default <T> T
このリクエストにバインドして、指定された型のインスタンスを返します。<T> T
bind
(ClassSE<T> bindType, ConsumerSE<WebDataBinder> dataBinderCustomizer) このリクエストにバインドして、指定された型のインスタンスを返します。<T> T
ボディを指定された型のオブジェクトとして抽出します。<T> T
body
(ParameterizedTypeReference<T> bodyType) ボディを指定された型のオブジェクトとして抽出します。default OptionalSE<ServerResponse>
checkNotModified
(StringSE etag) 提供されたETag
(エンティティタグ)を使用して、アプリケーションによって決定された、リクエストされたリソースが変更されたかどうかを確認します。default OptionalSE<ServerResponse>
checkNotModified
(InstantSE lastModified) 提供された最終変更タイムスタンプ(アプリケーションによって決定)を使用して、リクエストされたリソースが変更されたかどうかを確認します。default OptionalSE<ServerResponse>
checkNotModified
(InstantSE lastModified, StringSE etag) 提供されたETag
(エンティティタグ)およびアプリケーションによって決定された最終変更タイムスタンプを指定して、リクエストされたリソースが変更されたかどうかを確認します。cookies()
このリクエストの Cookie を取得します。static ServerRequest
create
(HttpServletRequestEE servletRequest, ListSE<HttpMessageConverter<?>> messageReaders) 指定されたHttpServletRequest
およびメッセージコンバーターに基づいて新しいServerRequest
を作成します。static ServerRequest.Builder
from
(ServerRequest other) 指定されたリクエストのステータス、ヘッダー、Cookie を使用してビルダーを作成します。headers()
このリクエストのヘッダーを取得します。このリクエストの本文の変換に使用されるリーダーを取得します。method()
HTTP メソッドを取得します。使用すべきではありません。Content-Type が"multipart/form-data"
である場合、またはそれ以外の場合は例外である場合は、マルチパートリクエストの一部を取得します。default OptionalSE<StringSE>
存在する場合、指定された名前の最初のパラメーターを取得します。params()
このリクエストのすべてのパラメーターを取得します。default StringSE
path()
リクエストパスを取得します。default PathContainer
使用すべきではありません。5.3 の時点で、requestPath()
を推奨default StringSE
pathVariable
(StringSE name) 指定された名前のパス変数があれば、それを取得します。このリクエストのすべてのパス変数を取得します。リクエストに対して認証されたユーザーを取得します(存在する場合)。可能な場合、このリクエストが接続されているリモートアドレスを取得します。default RequestPath
リクエストパスをPathContainer
として取得します。このリクエストが基づくサーブレットリクエストを取得します。session()
このリクエストの Web セッションを取得します。uri()
リクエスト URI を取得します。このServerRequest
に関連付けられた URI からUriBuilderComponents
を取得します。
メソッドの詳細
method
HttpMethod method()HTTP メソッドを取得します。- 戻り値:
- HttpMethod 列挙値としての HTTP メソッド、または解決できない場合は
null
(たとえば、非標準の HTTP メソッドの場合)
methodName
使用すべきではありません。method()
を推奨HTTP メソッドの名前を取得します。- 戻り値:
- 文字列としての HTTP メソッド
uri
URISE uri()リクエスト URI を取得します。uriBuilder
UriBuilder uriBuilder()このServerRequest
に関連付けられた URI からUriBuilderComponents
を取得します。- 戻り値:
- URI ビルダー
path
リクエストパスを取得します。pathContainer
使用すべきではありません。5.3 の時点で、requestPath()
を推奨リクエストパスをPathContainer
として取得します。requestPath
リクエストパスをPathContainer
として取得します。- 導入:
- 5.3
headers
ServerRequest.Headers headers()このリクエストのヘッダーを取得します。cookies
MultiValueMap<StringSE,CookieEE> cookies()このリクエストの Cookie を取得します。remoteAddress
OptionalSE<InetSocketAddressSE> remoteAddress()可能な場合、このリクエストが接続されているリモートアドレスを取得します。messageConverters
ListSE<HttpMessageConverter<?>> messageConverters()このリクエストの本文の変換に使用されるリーダーを取得します。body
ボディを指定された型のオブジェクトとして抽出します。- 型パラメーター:
T
- ボディ型- パラメーター:
bodyType
- 戻り値の型- 戻り値:
- 体
- 例外:
ServletExceptionEE
IOExceptionSE
body
ボディを指定された型のオブジェクトとして抽出します。- 型パラメーター:
T
- ボディ型- パラメーター:
bodyType
- 戻り値の型- 戻り値:
- 体
- 例外:
ServletExceptionEE
IOExceptionSE
bind
このリクエストにバインドして、指定された型のインスタンスを返します。- 型パラメーター:
T
- バインドする型- パラメーター:
bindType
- このリクエストをバインドするクラスの型- 戻り値:
bindType
の構築されバインドされたインスタンス- 例外:
BindException
- バインディングエラーの場合- 導入:
- 6.1
bind
<T> T bind(ClassSE<T> bindType, ConsumerSE<WebDataBinder> dataBinderCustomizer) throws BindException このリクエストにバインドして、指定された型のインスタンスを返します。- 型パラメーター:
T
- バインドする型- パラメーター:
bindType
- このリクエストをバインドするクラスの型dataBinderCustomizer
- データバインダーをカスタマイズするために使用されます。たとえば、許可 / 禁止フィールドを設定します。- 戻り値:
bindType
の構築されバインドされたインスタンス- 例外:
BindException
- バインディングエラーの場合- 導入:
- 6.1
attribute
リクエスト属性値が存在する場合は取得します。- パラメーター:
name
- 属性名- 戻り値:
- 属性値
attributes
リクエスト属性の可変マップを取得します。- 戻り値:
- リクエスト属性
param
存在する場合、指定された名前の最初のパラメーターを取得します。サーブレットパラメーターは、クエリ文字列または投稿されたフォームデータに含まれます。- パラメーター:
name
- パラメーター名- 戻り値:
- パラメーター値
- 関連事項:
params
MultiValueMap<StringSE,StringSE> params()このリクエストのすべてのパラメーターを取得します。サーブレットパラメーターは、クエリ文字列または投稿されたフォームデータに含まれます。multipartData
Content-Type が"multipart/form-data"
である場合、またはそれ以外の場合は例外である場合は、マルチパートリクエストの一部を取得します。- 戻り値:
- マルチパートデータ、名前からパーツへのマッピング
- 例外:
IOExceptionSE
- 検索中に I/O エラーが発生した場合ServletExceptionEE
- このリクエストが型"multipart/form-data"
でない場合- 導入:
- 5.3
- 関連事項:
pathVariable
指定された名前のパス変数があれば、それを取得します。- パラメーター:
name
- 変数名- 戻り値:
- 変数値
- 例外:
IllegalArgumentExceptionSE
- 指定された名前のパス変数がない場合
pathVariables
このリクエストのすべてのパス変数を取得します。session
HttpSessionEE session()このリクエストの Web セッションを取得します。クライアントからリクエストされたセッション ID に一致するインスタンス、またはクライアントがインスタンスを指定しなかったため、または基になるセッションが期限切れになったために新しいセッション ID でインスタンスを返すことが常に保証されています。このメソッドを使用しても、セッションは自動的には作成されません。principal
OptionalSE<PrincipalSE> principal()リクエストに対して認証されたユーザーを取得します(存在する場合)。servletRequest
HttpServletRequestEE servletRequest()このリクエストが基づくサーブレットリクエストを取得します。checkNotModified
提供された最終変更のタイムスタンプ(アプリケーションによって決定)を指定して、リクエストされたリソースが変更されているかどうかを確認します。変更されていない場合、このメソッドは対応するステータスコードとヘッダーを含むレスポンスを返し、それ以外の場合は空の結果を返します。典型的な使用箇所:
public ServerResponse myHandleMethod(ServerRequest request) { Instant lastModified = // application-specific calculation return request.checkNotModified(lastModified) .orElseGet(() -> { // further request processing, actually building content return ServerResponse.ok().body(...); }); }
このメソッドは、条件付きの GET/HEAD リクエストで機能しますが、条件付きの POST/PUT/DELETE リクエストでも機能します。
注意 : この
#checkNotModified(Instant)
メソッドのいずれかを使用できます。またはcheckNotModified(String)
。HTTP 仕様で推奨されているように、強力なエンティティタグと Last-Modified 値の両方を適用する場合は、checkNotModified(Instant, String)
を使用する必要があります。- パラメーター:
lastModified
- アプリケーションが基礎となるリソースについて決定した最終変更のタイムスタンプ- 戻り値:
- リクエストが変更されていない場合は対応するレスポンス、それ以外の場合は空の結果。
- 導入:
- 5.2.5
checkNotModified
アプリケーションによって決定されたように、提供されたETag
(エンティティタグ)を指定して、リクエストされたリソースが変更されているかどうかを確認します。変更されていない場合、このメソッドは対応するステータスコードとヘッダーを含むレスポンスを返し、それ以外の場合は空の結果を返します。典型的な使用箇所:
public ServerResponse myHandleMethod(ServerRequest request) { String eTag = // application-specific calculation return request.checkNotModified(eTag) .orElseGet(() -> { // further request processing, actually building content return ServerResponse.ok().body(...); }); }
このメソッドは、条件付きの GET/HEAD リクエストで機能しますが、条件付きの POST/PUT/DELETE リクエストでも機能します。
注意 : この
checkNotModified(Instant)
メソッドのいずれかを使用できます。または#checkNotModified(String)
。HTTP 仕様で推奨されているように、強力なエンティティタグと Last-Modified 値の両方を適用する場合は、checkNotModified(Instant, String)
を使用する必要があります。- パラメーター:
etag
- アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。- 戻り値:
- リクエストが変更されていない場合は対応するレスポンス、それ以外の場合は空の結果。
- 導入:
- 5.2.5
checkNotModified
指定されたETag
(エンティティタグ)と最終変更のタイムスタンプがアプリケーションによって決定された場合、リクエストされたリソースが変更されているかどうかを確認します。変更されていない場合、このメソッドは対応するステータスコードとヘッダーを含むレスポンスを返し、それ以外の場合は空の結果を返します。典型的な使用箇所:
public ServerResponse myHandleMethod(ServerRequest request) { Instant lastModified = // application-specific calculation String eTag = // application-specific calculation return request.checkNotModified(lastModified, eTag) .orElseGet(() -> { // further request processing, actually building content return ServerResponse.ok().body(...); }); }
このメソッドは、条件付きの GET/HEAD リクエストで機能しますが、条件付きの POST/PUT/DELETE リクエストでも機能します。
- パラメーター:
lastModified
- アプリケーションが基礎となるリソースについて決定した最終変更のタイムスタンプetag
- アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。- 戻り値:
- リクエストが変更されていない場合は対応するレスポンス、それ以外の場合は空の結果。
- 導入:
- 5.2.5
create
static ServerRequest create(HttpServletRequestEE servletRequest, ListSE<HttpMessageConverter<?>> messageReaders) 指定されたHttpServletRequest
およびメッセージコンバーターに基づいて新しいServerRequest
を作成します。- パラメーター:
servletRequest
- リクエストmessageReaders
- メッセージリーダー- 戻り値:
- 作成された
ServerRequest
from
指定されたリクエストのステータス、ヘッダー、Cookie を使用してビルダーを作成します。- パラメーター:
other
- ステータス、ヘッダー、Cookie をコピーするレスポンス- 戻り値:
- 作成されたビルダー
method()
を推奨