インターフェース ServerRequest


public interface ServerRequest
HandlerFunction で処理されるサーバー側の HTTP リクエストを表します。ヘッダーと本文へのアクセスは、それぞれ ServerRequest.Headersbody(Class) によって提供されます。
導入:
5.2
作成者:
Arjen Poutsma
  • ネストされたクラスの要約

    ネストされたクラス
    修飾子と型
    インターフェース
    説明
    static interface
    リクエストのビルダーを定義します。
    static interface
    HTTP リクエストのヘッダーを表します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    設定された ApiVersionStrategy または null を返します。
    リクエスト属性値が存在する場合は取得します。
    リクエスト属性の可変マップを取得します。
    default <T> T
    bind(ClassSE<T> bindType)
    このリクエストにバインドして、指定された型のインスタンスを返します。
    <T> T
    bind(ClassSE<T> bindType, ConsumerSE<WebDataBinder> dataBinderCustomizer)
    このリクエストにバインドして、指定された型のインスタンスを返します。
    <T> T
    body(ClassSE<T> bodyType)
    ボディを指定された型のオブジェクトとして抽出します。
    <T> T
    ボディを指定された型のオブジェクトとして抽出します。
    提供された ETag (エンティティタグ)を使用して、アプリケーションによって決定された、リクエストされたリソースが変更されたかどうかを確認します。
    提供された最終変更タイムスタンプ(アプリケーションによって決定)を使用して、リクエストされたリソースが変更されたかどうかを確認します。
    checkNotModified(InstantSE lastModified, StringSE etag)
    提供された ETag (エンティティタグ)およびアプリケーションによって決定された最終変更タイムスタンプを指定して、リクエストされたリソースが変更されたかどうかを確認します。
    MultiValueMap<StringSE, jakarta.servlet.http.Cookie>
    このリクエストの Cookie を取得します。
    create(jakarta.servlet.http.HttpServletRequest servletRequest, ListSE<HttpMessageConverter<?>> messageReaders)
    指定された HttpServletRequest およびメッセージコンバーターに基づいて新しい ServerRequest を作成します。
    create(jakarta.servlet.http.HttpServletRequest servletRequest, ListSE<HttpMessageConverter<?>> messageReaders, @Nullable ApiVersionStrategy versionStrategy)
    指定された HttpServletRequest およびメッセージコンバーターに基づいて新しい ServerRequest を作成します。
    指定されたリクエストのステータス、ヘッダー、Cookie を使用してビルダーを作成します。
    このリクエストのヘッダーを取得します。
    このリクエストの本文の変換に使用されるリーダーを取得します。
    HTTP メソッドを取得します。
    MultiValueMap<StringSE, jakarta.servlet.http.Part>
    Content-Type が "multipart/form-data" である場合、またはそれ以外の場合は例外である場合は、マルチパートリクエストの一部を取得します。
    存在する場合、指定された名前の最初のパラメーターを取得します。
    このリクエストのすべてのパラメーターを取得します。
    default StringSE
    リクエストパスを取得します。
    default StringSE
    指定された名前のパス変数があれば、それを取得します。
    このリクエストのすべてのパス変数を取得します。
    リクエストに対して認証されたユーザーを取得します(存在する場合)。
    可能な場合、このリクエストが接続されているリモートアドレスを取得します。
    default RequestPath
    リクエストパスを PathContainer として取得します。
    jakarta.servlet.http.HttpServletRequest
    このリクエストが基づくサーブレットリクエストを取得します。
    jakarta.servlet.http.HttpSession
    このリクエストの Web セッションを取得します。
    uri()
    リクエスト URI を取得します。
    この ServerRequest に関連付けられた URI から UriBuilderComponents を取得します。
  • メソッドの詳細

    • method

      HttpMethod method()
      HTTP メソッドを取得します。
      戻り値:
      HttpMethod 列挙値としての HTTP メソッド、または解決できない場合は null (たとえば、非標準の HTTP メソッドの場合)
    • uri

      URISE uri()
      リクエスト URI を取得します。
    • uriBuilder

      UriBuilder uriBuilder()
      この ServerRequest に関連付けられた URI から UriBuilderComponents を取得します。
      戻り値:
      URI ビルダー
    • path

      default StringSE path()
      リクエストパスを取得します。
    • requestPath

      default RequestPath requestPath()
      リクエストパスを PathContainer として取得します。
      導入:
      5.3
    • headers

      このリクエストのヘッダーを取得します。
    • cookies

      MultiValueMap<StringSE, jakarta.servlet.http.Cookie> cookies()
      このリクエストの Cookie を取得します。
    • remoteAddress

      可能な場合、このリクエストが接続されているリモートアドレスを取得します。
    • messageConverters

      ListSE<HttpMessageConverter<?>> messageConverters()
      このリクエストの本文の変換に使用されるリーダーを取得します。
    • apiVersionStrategy

      @Nullable ApiVersionStrategy apiVersionStrategy()
      設定された ApiVersionStrategy または null を返します。
      導入:
      7.0
    • body

      <T> T body(ClassSE<T> bodyType) throws jakarta.servlet.ServletException, IOExceptionSE
      ボディを指定された型のオブジェクトとして抽出します。
      型パラメーター:
      T - ボディ型
      パラメーター:
      bodyType - 戻り値の型
      戻り値:
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
    • body

      <T> T body(ParameterizedTypeReference<T> bodyType) throws jakarta.servlet.ServletException, IOExceptionSE
      ボディを指定された型のオブジェクトとして抽出します。
      型パラメーター:
      T - ボディ型
      パラメーター:
      bodyType - 戻り値の型
      戻り値:
      例外:
      jakarta.servlet.ServletException
      IOExceptionSE
    • bind

      default <T> T bind(ClassSE<T> bindType) throws BindException
      このリクエストにバインドして、指定された型のインスタンスを返します。
      型パラメーター:
      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

      default OptionalSE<ObjectSE> attribute(StringSE name)
      リクエスト属性値が存在する場合は取得します。
      パラメーター:
      name - 属性名
      戻り値:
      属性値
    • attributes

      MapSE<StringSE,ObjectSE> attributes()
      リクエスト属性の可変マップを取得します。
      戻り値:
      リクエスト属性
    • param

      default OptionalSE<StringSE> param(StringSE name)
      存在する場合、指定された名前の最初のパラメーターを取得します。サーブレットパラメーターは、クエリ文字列または投稿されたフォームデータに含まれます。
      パラメーター:
      name - パラメーター名
      戻り値:
      パラメーター値
      関連事項:
      • ServletRequest.getParameter(String)
    • params

      このリクエストのすべてのパラメーターを取得します。サーブレットパラメーターは、クエリ文字列または投稿されたフォームデータに含まれます。
      関連事項:
      • ServletRequest.getParameterMap()
    • multipartData

      MultiValueMap<StringSE, jakarta.servlet.http.Part> multipartData() throws IOExceptionSE, jakarta.servlet.ServletException
      Content-Type が "multipart/form-data" である場合、またはそれ以外の場合は例外である場合は、マルチパートリクエストの一部を取得します。
      戻り値:
      マルチパートデータ、名前からパーツへのマッピング
      例外:
      IOExceptionSE - 検索中に I/O エラーが発生した場合
      jakarta.servlet.ServletException - このリクエストが型 "multipart/form-data" でない場合
      導入:
      5.3
      関連事項:
      • HttpServletRequest.getParts()
    • pathVariable

      default StringSE pathVariable(StringSE name)
      指定された名前のパス変数があれば、それを取得します。
      パラメーター:
      name - 変数名
      戻り値:
      変数値
      例外:
      IllegalArgumentExceptionSE - 指定された名前のパス変数がない場合
    • pathVariables

      MapSE<StringSE,StringSE> pathVariables()
      このリクエストのすべてのパス変数を取得します。
    • session

      jakarta.servlet.http.HttpSession session()
      このリクエストの Web セッションを取得します。クライアントからリクエストされたセッション ID に一致するインスタンス、またはクライアントがインスタンスを指定しなかったため、または基になるセッションが期限切れになったために新しいセッション ID でインスタンスを返すことが常に保証されています。このメソッドを使用しても、セッションは自動的には作成されません。
    • principal

      OptionalSE<PrincipalSE> principal()
      リクエストに対して認証されたユーザーを取得します(存在する場合)。
    • servletRequest

      jakarta.servlet.http.HttpServletRequest servletRequest()
      このリクエストが基づくサーブレットリクエストを取得します。
    • checkNotModified

      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 - アプリケーションが基礎となるリソースについて決定した最終変更のタイムスタンプ
      戻り値:
      リクエストが変更されていない場合は対応するレスポンス、それ以外の場合は空の結果。
      導入:
      5.2.5
    • checkNotModified

      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 - アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。
      戻り値:
      リクエストが変更されていない場合は対応するレスポンス、それ以外の場合は空の結果。
      導入:
      5.2.5
    • checkNotModified

      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 - アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。
      戻り値:
      リクエストが変更されていない場合は対応するレスポンス、それ以外の場合は空の結果。
      導入:
      5.2.5
    • create

      static ServerRequest create(jakarta.servlet.http.HttpServletRequest servletRequest, ListSE<HttpMessageConverter<?>> messageReaders)
      指定された HttpServletRequest およびメッセージコンバーターに基づいて新しい ServerRequest を作成します。
      パラメーター:
      servletRequest - リクエスト
      messageReaders - メッセージリーダー
      戻り値:
      作成された ServerRequest
    • create

      static ServerRequest create(jakarta.servlet.http.HttpServletRequest servletRequest, ListSE<HttpMessageConverter<?>> messageReaders, @Nullable ApiVersionStrategy versionStrategy)
      指定された HttpServletRequest およびメッセージコンバーターに基づいて新しい ServerRequest を作成します。
      パラメーター:
      servletRequest - リクエスト
      messageReaders - メッセージリーダー
      versionStrategy - バージョンを解析するために使用する戦略
      戻り値:
      作成された ServerRequest
      導入:
      7.0
    • from

      static ServerRequest.Builder from(ServerRequest other)
      指定されたリクエストのステータス、ヘッダー、Cookie を使用してビルダーを作成します。
      パラメーター:
      other - ステータス、ヘッダー、Cookie をコピーするレスポンス
      戻り値:
      作成されたビルダー