インターフェース HandlerMapping

すべての既知のサブインターフェース:
MatchableHandlerMapping
すべての既知の実装クラス:
AbstractDetectingUrlHandlerMapping, AbstractHandlerMapping, AbstractHandlerMethodMapping, AbstractUrlHandlerMapping, BeanNameUrlHandlerMapping, RequestMappingHandlerMapping, RequestMappingInfoHandlerMapping, RouterFunctionMapping, SimpleUrlHandlerMapping, WebSocketHandlerMapping

public interface HandlerMapping
リクエストとハンドラーオブジェクト間のマッピングを定義するオブジェクトによって実装されるインターフェース。

このクラスは、アプリケーション開発者が実装できますが、BeanNameUrlHandlerMapping および RequestMappingHandlerMapping はフレームワークに含まれているため、これは必須ではありません。HandlerMapping Bean がアプリケーションコンテキストに登録されていない場合、前者がデフォルトです。

HandlerMapping 実装は、マップされたインターセプターをサポートできますが、そうする必要はありません。ハンドラーは常に HandlerExecutionChain インスタンスにラップされ、オプションでいくつかの HandlerInterceptor インスタンスを伴います。DispatcherServlet は最初に各 HandlerInterceptor の preHandle メソッドを指定された順序で呼び出し、すべての preHandle メソッドが true を返した場合、最後にハンドラー自体を呼び出します。

このマッピングをパラメーター化する機能は、この MVC フレームワークの強力で珍しい機能です。例: セッション状態、Cookie 状態、他の多くの変数に基づいてカスタムマッピングを記述することができます。他の MVC フレームワークは、同様に柔軟ではないようです。

メモ: 実装では、Ordered インターフェースを実装して、ソート順を指定できるため、DispatcherServlet によって適用される優先順位を指定できます。順序付けされていないインスタンスは、最低の優先度として扱われます。

作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final StringSE
    解決され解析された API バージョンを含む HttpServletRequest 属性の名前。
    static final StringSE
    最も一致するパターンにマップされたハンドラーを含む HttpServletRequest 属性の名前。
    static final StringSE
    ハンドラーマッピング内で最も一致するパターンを含む HttpServletRequest 属性の名前。
    static final StringSE
    型レベルのマッピングをインスペクションする必要があるかどうかを示すブール型 HttpServletRequest 属性の名前。
    static final StringSE
    使用すべきではありません。
    static final StringSE
    URI 変数名と、それぞれの URI マトリックス変数の対応する MultiValueMap を含むマップを含む HttpServletRequest 属性の名前。
    static final StringSE
    パターンが一致する場合はハンドラーマッピング内のパス、それ以外の場合は完全な関連 URI (通常は DispatcherServlet のマッピング内) を含む HttpServletRequest 属性の名前。
    static final StringSE
    マップされたハンドラーに適用可能な生成可能な MediaTypes のセットを含む HttpServletRequest 属性の名前。
    static final StringSE
    変数名を値にマッピングする URI テンプレートマップを含む HttpServletRequest 属性の名前。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    getHandler(jakarta.servlet.http.HttpServletRequest request)
    このリクエストのハンドラーとインターセプターを返します。
    default boolean
    この HandlerMapping インスタンスが解析済み PathPattern の使用を有効にしているかどうか。この場合、DispatcherServlet は自動的に RequestPath を parses して、HandlerMappingHandlerInterceptor、その他のコンポーネントの access で使用できるようにします。
  • フィールドの詳細

    • BEST_MATCHING_HANDLER_ATTRIBUTE

      static final StringSE BEST_MATCHING_HANDLER_ATTRIBUTE
      最も一致するパターンにマップされたハンドラーを含む HttpServletRequest 属性の名前。
      導入:
      4.3.21
    • LOOKUP_PATH

      @DeprecatedSE(since="5.3") static final StringSE LOOKUP_PATH
      使用すべきではありません。
      UrlPathHelper.PATH_ATTRIBUTEServletRequestPathUtils.PATH_ATTRIBUTE を優先します。リクエストマッピングに使用されるキャッシュされたパスにアクセスするには、ServletRequestPathUtils.getCachedPathValue(ServletRequest) を使用します。
      Name of the HttpServletRequest attribute that contains the path used to look up the matching handler, which depending on the configured UrlPathHelper could be the full path or without the context path, decoded or not, etc.
      導入:
      5.2
    • PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE

      static final StringSE PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
      パターンが一致する場合はハンドラーマッピング内のパス、それ以外の場合は完全な関連 URI (通常は DispatcherServlet のマッピング内) を含む HttpServletRequest 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。

    • BEST_MATCHING_PATTERN_ATTRIBUTE

      static final StringSE BEST_MATCHING_PATTERN_ATTRIBUTE
      ハンドラーマッピング内で最も一致するパターンを含む HttpServletRequest 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。

    • INTROSPECT_TYPE_LEVEL_MAPPING

      static final StringSE INTROSPECT_TYPE_LEVEL_MAPPING
      型レベルのマッピングをインスペクションする必要があるかどうかを示すブール型 HttpServletRequest 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。

    • URI_TEMPLATE_VARIABLES_ATTRIBUTE

      static final StringSE URI_TEMPLATE_VARIABLES_ATTRIBUTE
      変数名を値にマッピングする URI テンプレートマップを含む HttpServletRequest 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。

    • MATRIX_VARIABLES_ATTRIBUTE

      static final StringSE MATRIX_VARIABLES_ATTRIBUTE
      URI 変数名と、それぞれの URI マトリックス変数の対応する MultiValueMap を含むマップを含む HttpServletRequest 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はなく、HandlerMapping がマトリックス変数コンテンツを保持するように構成されているかどうかによっては存在しない場合もあります。

    • PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE

      static final StringSE PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE
      マップされたハンドラーに適用可能な生成可能な MediaTypes のセットを含む HttpServletRequest 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。ハンドラーは、このリクエスト属性がすべてのシナリオに存在することを必ずしも期待する必要はありません。

    • API_VERSION_ATTRIBUTE

      static final StringSE API_VERSION_ATTRIBUTE
      解決され解析された API バージョンを含む HttpServletRequest 属性の名前。
      導入:
      7.0
  • メソッドの詳細

    • usesPathPatterns

      default boolean usesPathPatterns()
      この HandlerMapping インスタンスが解析済み PathPattern の使用を有効にしているかどうか。この場合、DispatcherServlet は自動的に RequestPath を parses して、HandlerMappingHandlerInterceptor、その他のコンポーネントの access で使用できるようにします。
      導入:
      5.3
    • getHandler

      @Nullable HandlerExecutionChain getHandler(jakarta.servlet.http.HttpServletRequest request) throws ExceptionSE
      このリクエストのハンドラーとインターセプターを返します。選択は、リクエスト URL、セッション状態、実装クラスが選択する任意の要素で行うことができます。

      返された HandlerExecutionChain には、タグインターフェースではなくハンドラーオブジェクトが含まれているため、ハンドラーは一切制限されません。例: HandlerAdapter は、別のフレームワークのハンドラーオブジェクトを使用できるように記述できます。

      一致が見つからなかった場合、null を返します。これはエラーではありません。DispatcherServlet は、登録されているすべての HandlerMapping Bean を照会して一致を検出し、ハンドラーが見つからない場合にのみエラーがあると判断します。

      パラメーター:
      request - 現在の HTTP リクエスト
      戻り値:
      ハンドラーオブジェクトとインターセプターを含む HandlerExecutionChain インスタンス、またはマッピングが見つからない場合は null 
      例外:
      ExceptionSE - 内部エラーがある場合