public interface WebRequestInterceptor
WebRequest
抽象化を構築することにより、サーブレットリクエストに適用できるようにします。このインターフェースは、MVC スタイルのリクエスト処理を前提としています。ハンドラーが実行され、一連のモデルオブジェクトが公開されてから、そのモデルに基づいてビューがレンダリングされます。または、ハンドラーは、ビューをレンダリングせずにリクエストを完全に処理することもできます。
非同期処理のシナリオでは、メインスレッドが postHandle
および afterCompletion
コールバックをレンダリングまたは呼び出さずに終了するときに、ハンドラーが別のスレッドで実行される場合があります。ハンドラーの同時実行が完了すると、モデルのレンダリングを続行するためにリクエストがディスパッチされ、この契約のすべてのメソッドが再度呼び出されます。その他のオプションとコメントについては、org.springframework.web.context.request.async.AsyncWebRequestInterceptor
を参照してください
このインターフェースは、一般的なリクエストインターセプターの依存関係を可能な限り最小限に抑えるために、意図的に最小限に抑えられています。
ServletWebRequest
, DispatcherServlet
, AbstractHandlerMapping.setInterceptors(java.lang.Object...)
, HandlerInterceptor
修飾子と型 | メソッドと説明 |
---|---|
void | afterCompletion(WebRequest request, ExceptionSE ex) リクエスト処理の完了後、つまりビューのレンダリング後のコールバック。 |
void | postHandle(WebRequest request, ModelMap model) 呼び出しが成功した後、ビューのレンダリングの前に(もしあれば)リクエストハンドラーの実行をインターセプトします。 |
void | preHandle(WebRequest request) 呼び出しの前にリクエストハンドラーの実行をインターセプトします。 |
void preHandle(WebRequest request) throws ExceptionSE
コンテキストリソース(Hibernate セッションなど)を準備し、リクエスト属性またはスレッドローカルオブジェクトとして公開できます。
request
- 現在の Web リクエスト ExceptionSE
- エラーの場合 void postHandle(WebRequest request, @Nullable ModelMap model) throws ExceptionSE
ハンドラーの実行が成功した後にコンテキストリソースを変更することができます(たとえば、Hibernate セッションのフラッシュ)。
request
- 現在の Web リクエスト model
- ビューに公開されるモデルオブジェクトのマップ(null
の場合があります)。必要に応じて、公開されたモデルの分析やモデル属性の追加に使用できます。ExceptionSE
- エラーの場合 void afterCompletion(WebRequest request, @Nullable ExceptionSE ex) throws ExceptionSE
メモ: このインターセプターの preHandle
メソッドが正常に完了した場合にのみ呼び出されます!
request
- 現在の Web リクエスト ex
- ハンドラーの実行時にスローされる例外(ある場合)ExceptionSE
- エラーの場合