パッケージ jakarta.ws.rs.container

インターフェース ContainerRequestFilter


  • public interface ContainerRequestFilter
    コンテナーリクエストフィルターによって実装される拡張インターフェース。

    デフォルトでは、つまり name binding がフィルター実装クラスに適用されていない場合、フィルターインスタンスはグローバルに適用されますが、JAX-RS ランタイムによって受信リクエストが特定のリソースに一致した後でのみ適用されます。フィルターに @NameBinding アノテーションが適用されている場合、フィルターは一致後のリクエスト拡張ポイントでも実行されますが、一致した resource or sub-resource method が同じ名前バインディングアノテーションにバインドされている場合に限ります。

    ケースでは、フィルターは、任意のリクエストマッチングが JAX-RS ランタイムによって実行される前に、フィルターは @PreMatching アノテーションを付けなければならない、すなわち、 プレマッチ拡張ポイントに適用されるべきです。

    一致前のリクエストフィルターを使用して、JAX-RS マッチングアルゴリズムへの入力を更新します。たとえば、HTTP メソッド、Accept ヘッダー、キャッシュされたレスポンスを返すなどです。それ以外の場合は、 一致後のリクエスト拡張ポイントで呼び出されるリクエストフィルターを使用します。(リソースメソッドのマッチングが成功した後)をお勧めします。

    このインターフェースを実装するフィルターは、JAX-RS ランタイムによって検出されるように @Provider でアノテーションを付ける必要があります。コンテナーリクエストフィルターインスタンスも検出され、dynamically が特定のリソースメソッドにバインドされる場合があります。

    導入:
    2.0
    作成者:
    Marek Potociar, Santiago Pericas-Geertsen
    関連事項:
    PreMatching, ContainerResponseFilter
    • メソッドの詳細

      • filter

        void filter​(ContainerRequestContext requestContext)
             throws IOExceptionSE
        リクエストがリソースにディスパッチされる前に呼び出される Filter メソッド。

        フィルターチェーン内のフィルターは、jakarta.annotation.Priority クラスレベルのアノテーション値に従って順序付けられます。リクエストフィルターが ContainerRequestContext.abortWith(jakarta.ws.rs.core.Response) メソッドを呼び出すことによってレスポンスを生成する場合、(事前一致またはリアクティブ一致)リクエストフィルターチェーンの実行が停止され、レスポンスが対応するレスポンスフィルターチェーン(事前一致またはリアクティブのいずれか)に渡されます。一致)。例: 事前一致キャッシュフィルターは、この方法でレスポンスを生成する可能性があります。これにより、一致後リクエストフィルターと一致後レスポンスフィルターが効果的にスキップされます。ただし、この方法で生成されたレスポンスは、事前一致レスポンスフィルターチェーンによって引き続き処理されることに注意してください。

        パラメーター:
        requestContext - リクエストコンテキスト。
        例外:
        IOExceptionSE - I/O 例外が発生した場合。
        関連事項:
        PreMatching