インターフェース WebRequestInterceptor

すべての既知のサブインターフェース:
AsyncWebRequestInterceptor
すべての既知の実装クラス:
OpenEntityManagerInViewInterceptorOpenSessionInViewInterceptor

public interface WebRequestInterceptor
一般的な Web リクエストのインターセプトのためのインターフェース。WebRequest 抽象化を構築することにより、サーブレットリクエストに適用できるようにします。

このインターフェースは、MVC スタイルのリクエスト処理を前提としています。ハンドラーが実行され、一連のモデルオブジェクトが公開されてから、そのモデルに基づいてビューがレンダリングされます。または、ハンドラーは、ビューをレンダリングせずにリクエストを完全に処理することもできます。

非同期処理のシナリオでは、メインスレッドが postHandle および afterCompletion コールバックをレンダリングまたは呼び出さずに終了するときに、ハンドラーが別のスレッドで実行される場合があります。ハンドラーの同時実行が完了すると、モデルのレンダリングを続行するためにリクエストがディスパッチされ、この契約のすべてのメソッドが再度呼び出されます。その他のオプションとコメントについては、org.springframework.web.context.request.async.AsyncWebRequestInterceptor を参照してください

このインターフェースは、一般的なリクエストインターセプターの依存関係を可能な限り最小限に抑えるために、意図的に最小限に抑えられています。

導入:
2.0
作成者:
Juergen Hoeller
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    リクエスト処理の補完後、つまりビューのレンダリング後のコールバック。
    void
    呼び出しが成功した、ビューのレンダリングの前に(もしあれば)リクエストハンドラーの実行をインターセプトします。
    void
    呼び出しの前にリクエストハンドラーの実行をインターセプトします。
  • メソッドの詳細

    • preHandle

      void preHandle(WebRequest request) throws ExceptionSE
      呼び出しの前にリクエストハンドラーの実行をインターセプトします。

      コンテキストリソース(Hibernate セッションなど)を準備し、リクエスト属性またはスレッドローカルオブジェクトとして公開できます。

      パラメーター:
      request - 現在の Web リクエスト
      例外:
      ExceptionSE - エラーの場合
    • postHandle

      void postHandle(WebRequest request, @Nullable ModelMap model) throws ExceptionSE
      呼び出しが成功した、ビューのレンダリングの前に(もしあれば)リクエストハンドラーの実行をインターセプトします。

      ハンドラーの実行が成功した後にコンテキストリソースを変更することができます(たとえば、Hibernate セッションのフラッシュ)。

      パラメーター:
      request - 現在の Web リクエスト
      model - ビューに公開されるモデルオブジェクトのマップ(null の場合があります)。必要に応じて、公開されたモデルの分析やモデル属性の追加に使用できます。
      例外:
      ExceptionSE - エラーの場合
    • afterCompletion

      void afterCompletion(WebRequest request, @Nullable ExceptionSE ex) throws ExceptionSE
      リクエスト処理の補完後、つまりビューのレンダリング後のコールバック。ハンドラー実行の結果で呼び出されるため、適切なリソースのクリーンアップが可能になります。

      メモ: このインターセプターの preHandle メソッドが正常に完了した場合にのみ呼び出されます!

      パラメーター:
      request - 現在の Web リクエスト
      ex - ハンドラーの実行時にスローされる例外(ある場合)
      例外:
      ExceptionSE - エラーの場合