1つの傍受の概要
1.1インターセプタとは何ですか?
springMVCフィルタ(フィルタ)サーブレットに似てインターセプター(インターセプタ)は、ユーザの要求をインターセプトし、それに応じて処理のために主です。たとえば、アクセス許可がインターセプタ、ログ記録要求情報によって確認することができる、ユーザのログイン等か否かを判断します。
springMVCにインターセプターを使用するには、インターセプタクラスを定義し、設定する必要があります。典型的には、インターセプタ・クラスは、2つの方法で定義することができます。
1 HandlerInterceptorインタフェースを実装または継承HandlerInterceptorインタフェースの実装クラスによって定義されます。
図2に示すようにWebRequestInterceptorインタフェースを実装またはWebRequestInterceptorインタフェースの実装クラスを継承することによって定義されます。
達成するためにHandlerInterceptorインタフェースモードは、例えば、カスタムインターセプタクラスのコードは次のように:
パブリック クラス CustomInterceptorが実装HandlerInterceptor { パブリック ブールpreHandle(HttpServletRequestのリクエスト、 HttpServletResponseの応答、オブジェクト・ハンドラ)がスロー例外{ 戻り 偽。 } 公共 ボイドpostHandle(HttpServletRequestのリクエスト、 HttpServletResponseの応答、オブジェクト・ハンドラ のModelAndViewのModelAndView)をスロー例外{ } 公共 ボイドafterCompletion(HttpServletRequestのリクエストを、 HttpServletResponseの応答、オブジェクトハンドラ、 例外EX)がスロー例外を{ } }
上記のコードは、カスタムインターセプタHandlerInterceptorは、インターフェイスを実装し、3つのインターフェイスのメソッドを実装します。
preHandle()メソッド:このメソッドは、割込みの戻り値は、後続の操作かどうかを示す、コントローラのメソッドの前に行われます。それは行くことを示し、真の値を返す場合、戻り値がfalseの場合、(次のコールインターセプタコントローラクラスなどを行う方法を含む)すべての後続の操作を中断します。
postHandle()メソッド:このメソッドは、コントローラ後方法、及び分析の実行前にビューを呼び出します。我々は、モデルと、この方法によってビューにさらに変更を加えることができます。
afterCompletion()メソッド:エンド・ビューのレンダリングがそのように情報をログに記録する、いくつかのリソースをクリーンアップするために、この方法によって達成することができた後、全体の要求を完了します。このメソッドは、それが実行されます。