90

ドキュメントには、org.springframework.web.filter.OncePerRequestFilterリクエストごとに1回だけ実行されることを保証する」と書かれています。リクエストごとにフィルタが複数回実行される可能性があるのは、どのような状況ですか?

4

5 に答える 5

77

リクエストごとにフィルタが複数回実行される可能性があるのは、どのような状況ですか?

フィルターチェーンにフィルターを複数回含めることができます。

リクエストは、リクエスト ディスパッチャを使用して別の (または同じ) サーブレットにディスパッチできます。


一般的なユースケースは Spring Security であり、認証とアクセス制御機能は通常、メイン アプリケーション サーブレットの前にあるフィルターとして実装されます。リクエスト ディスパッチャを使用してリクエストがディスパッチされると、そのリクエストを処理するサーブレットに到達する前に、フィルタ チェーンを再度 (または別のフィルタ チェーンを) 通過する必要があります。問題は、一部のセキュリティ フィルター アクションは、1 つの要求に対して 1 回だけ実行する必要があることです。したがって、このフィルターが必要です。

于 2012-10-31T07:16:36.133 に答える