public interface ServerRequest
HandlerFunction
で処理されるサーバー側の HTTP リクエストを表します。ヘッダーと本文へのアクセスは、それぞれ ServerRequest.Headers
と body(Class)
によって提供されます。修飾子と型 | インターフェースと説明 |
---|---|
static interface | ServerRequest.Builder リクエストのビルダーを定義します。 |
static interface | ServerRequest.Headers HTTP リクエストのヘッダーを表します。 |
修飾子と型 | メソッドと説明 |
---|---|
default OptionalSE<ObjectSE> | attribute(StringSE name) リクエスト属性値が存在する場合は取得します。 |
MapSE<StringSE, ObjectSE> | attributes() リクエスト属性の可変マップを取得します。 |
<T> T | body(ClassSE<T> bodyType) ボディを指定された型のオブジェクトとして抽出します。 |
<T> T | body(ParameterizedTypeReference<T> bodyType) ボディを指定された型のオブジェクトとして抽出します。 |
default OptionalSE<ServerResponse> | checkNotModified(InstantSE lastModified) 提供された最終変更タイムスタンプ(アプリケーションによって決定)を使用して、リクエストされたリソースが変更されたかどうかを確認します。 |
default OptionalSE<ServerResponse> | checkNotModified(InstantSE lastModified, StringSE etag) 提供された ETag (エンティティタグ)およびアプリケーションによって決定された最終変更タイムスタンプを指定して、リクエストされたリソースが変更されたかどうかを確認します。 |
default OptionalSE<ServerResponse> | checkNotModified(StringSE etag) 提供された ETag (エンティティタグ)を使用して、アプリケーションによって決定された、リクエストされたリソースが変更されたかどうかを確認します。 |
MultiValueMap<StringSE, CookieEE> | cookies() このリクエストの Cookie を取得します。 |
static ServerRequest | create(HttpServletRequestEE servletRequest, ListSE<HttpMessageConverter<?>> messageReaders) 指定された HttpServletRequest およびメッセージコンバーターに基づいて新しい ServerRequest を作成します。 |
static ServerRequest.Builder | from(ServerRequest other) 指定されたリクエストのステータス、ヘッダー、Cookie を使用してビルダーを作成します。 |
ServerRequest.Headers | headers() このリクエストのヘッダーを取得します。 |
ListSE<HttpMessageConverter<?>> | messageConverters() このリクエストの本文の変換に使用されるリーダーを取得します。 |
default HttpMethod | method() HTTP メソッドを取得します。 |
StringSE | methodName() HTTP メソッドの名前を取得します。 |
MultiValueMap<StringSE, PartEE> | multipartData() Content-Type が "multipart/form-data" である場合、またはそれ以外の場合は例外である場合は、マルチパートリクエストの一部を取得します。 |
default OptionalSE<StringSE> | param(StringSE name) 存在する場合、指定された名前の最初のパラメーターを取得します。 |
MultiValueMap<StringSE, StringSE> | params() このリクエストのすべてのパラメーターを取得します。 |
default StringSE | path() リクエストパスを取得します。 |
default PathContainer | pathContainer() 使用すべきではありません。 5.3 の時点で、 requestPath() を推奨 |
default StringSE | pathVariable(StringSE name) 指定された名前のパス変数があれば、それを取得します。 |
MapSE<StringSE, StringSE> | pathVariables() このリクエストのすべてのパス変数を取得します。 |
OptionalSE<PrincipalSE> | principal() リクエストに対して認証されたユーザーを取得します(存在する場合)。 |
OptionalSE<InetSocketAddressSE> | remoteAddress() 可能な場合、このリクエストが接続されているリモートアドレスを取得します。 |
default RequestPath | requestPath() リクエストパスを PathContainer として取得します。 |
HttpServletRequestEE | servletRequest() このリクエストが基づくサーブレットリクエストを取得します。 |
HttpSessionEE | session() このリクエストの Web セッションを取得します。 |
URISE | uri() リクエスト URI を取得します。 |
UriBuilder | uriBuilder() この ServerRequest に関連付けられた URI から UriBuilderComponents を取得します。 |
@Nullable default HttpMethod method()
null
(たとえば非標準の HTTP メソッドの場合)StringSE methodName()
URISE uri()
UriBuilder uriBuilder()
ServerRequest
に関連付けられた URI から UriBuilderComponents
を取得します。default StringSE path()
@DeprecatedSE default PathContainer pathContainer()
requestPath()
では推奨 。PathContainer
として取得します。default RequestPath requestPath()
PathContainer
として取得します。ServerRequest.Headers headers()
MultiValueMap<StringSE,CookieEE> cookies()
OptionalSE<InetSocketAddressSE> remoteAddress()
ListSE<HttpMessageConverter<?>> messageConverters()
<T> T body(ClassSE<T> bodyType) throws ServletExceptionEE, IOExceptionSE
T
- ボディ型 bodyType
- 戻り値の型 ServletExceptionEE
IOExceptionSE
<T> T body(ParameterizedTypeReference<T> bodyType) throws ServletExceptionEE, IOExceptionSE
T
- ボディ型 bodyType
- 戻り値の型 ServletExceptionEE
IOExceptionSE
default OptionalSE<ObjectSE> attribute(StringSE name)
name
- 属性名 default OptionalSE<StringSE> param(StringSE name)
name
- パラメーター名 ServletRequest.getParameter(String)
EEMultiValueMap<StringSE,StringSE> params()
MultiValueMap<StringSE,PartEE> multipartData() throws IOExceptionSE, ServletExceptionEE
"multipart/form-data"
である場合、またはそれ以外の場合は例外である場合は、マルチパートリクエストの一部を取得します。IOExceptionSE
- 検索中に I/O エラーが発生した場合 ServletExceptionEE
- このリクエストが型 "multipart/form-data"
でない場合 HttpServletRequest.getParts()
EEdefault StringSE pathVariable(StringSE name)
name
- 変数名 IllegalArgumentExceptionSE
- 指定された名前のパス変数がない場合 HttpSessionEE session()
OptionalSE<PrincipalSE> principal()
HttpServletRequestEE servletRequest()
default OptionalSE<ServerResponse> checkNotModified(InstantSE lastModified)
典型的な使用箇所:
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
- アプリケーションが基礎となるリソースについて決定した最終変更のタイムスタンプ default OptionalSE<ServerResponse> checkNotModified(StringSE etag)
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
- アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。default OptionalSE<ServerResponse> checkNotModified(InstantSE lastModified, StringSE etag)
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
- アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。static ServerRequest create(HttpServletRequestEE servletRequest, ListSE<HttpMessageConverter<?>> messageReaders)
HttpServletRequest
およびメッセージコンバーターに基づいて新しい ServerRequest
を作成します。servletRequest
- リクエスト messageReaders
- メッセージリーダー ServerRequest
static ServerRequest.Builder from(ServerRequest other)
other
- ステータス、ヘッダー、Cookie をコピーするレスポンス