インターフェース 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
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 void
filter(ContainerRequestContext requestContext)
リクエストがリソースにディスパッチされる前に呼び出される Filter メソッド。
メソッドの詳細
filter
void filter(ContainerRequestContext requestContext) throws IOExceptionSE
リクエストがリソースにディスパッチされる前に呼び出される Filter メソッド。フィルターチェーン内のフィルターは、
jakarta.annotation.Priority
クラスレベルのアノテーション値に従って順序付けられます。リクエストフィルターがContainerRequestContext.abortWith(jakarta.ws.rs.core.Response)
メソッドを呼び出すことによってレスポンスを生成する場合、(事前一致またはリアクティブ一致)リクエストフィルターチェーンの実行が停止され、レスポンスが対応するレスポンスフィルターチェーン(事前一致またはリアクティブのいずれか)に渡されます。一致)。例: 事前一致キャッシュフィルターは、この方法でレスポンスを生成する可能性があります。これにより、一致後リクエストフィルターと一致後レスポンスフィルターが効果的にスキップされます。ただし、この方法で生成されたレスポンスは、事前一致レスポンスフィルターチェーンによって引き続き処理されることに注意してください。- パラメーター:
requestContext
- リクエストコンテキスト。- 例外:
IOExceptionSE
- I/O 例外が発生した場合。- 関連事項:
PreMatching