Spring MVCのアセンブリインターセプタ

要求が受信されると、ハンドラマッピング(HandlerMapping)に要求をDispatcherServletの、あなたはリクエストにHandlerExecutionChainオブジェクトを見つける必要があります。HandlerMappingを説明する前に、このHandlerExecutionChainオブジェクトについて知ることが必要です。

HandlerExecutionChain名が示唆要求インターセプタ(HandlerInterceptor)インターセプト同時に複数を含む、実行のチェーン、プロセッサ(ハンドラ)プロセスを含む要求です。戻りHandlerExecutionChainをHandlerMapping場合、のDispatcherServletはプロセッサにHandlerExecutionChain要求で定義され、一緒にインターセプタを処理しました。

HandlerExecutionChainは、要求を処理する責任があり、実行のModelAndView鎖、下記に示す構造を処理返します。要求はハンドラを実行する前と後に、鎖はHandlerlnterceptor実施形態の傍受を組み立てることであろう。

最後にインターセプターは何をしますか?私たちは、インターセプタを調べるために、いくつかのインタフェース・メソッドを介して理解しています。
1)ブールpreHandle(HttpServletRequestのリクエスト、 HttpServletResponseの応答、オブジェクト・ハンドラ): 要求ハンドラに到達する前に、前処理方法を実行します。このメソッドがfalseを返す場合、要求は直接返され、それは、チェーン内の次のインターセプタに伝達されないが、プロセッサでハンドラ鎖末端に伝達されません。唯一の要求は、次の処理チェーンのノードに渡された、真を返します。

2)ボイドpostHandle(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラのModelAndViewのModelAndView):要求がHandlerAdapter実行された後、後処理方法を実行します。

3)空隙afterCompletion(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラは、例外EX):応答がレンダリングされた後、方法が実行されます。

プロセッサは、アダプタによってカプセル化のDispatcherServletハンドラHandlerAdapter、均一な処理ハンドラの呼び出しに応じて、アダプタ・インターフェースのための、鎖末端ハンドラに配置されています。

< MVC:インターセプタ> 
    < MVC:インターセプター> 
        < マッピングパス= "/セキュア/ *" > 
        < ビーンクラス= "com.smart.web.MyInterceptor" /> 
    </ MVC:インターセプター> 
</ MVC:インターセプタ>

SMART-servlet.xmlインターセプタ複数に配置することができ、各インターセプタは、インターセプタの範囲を限定するパスマップマッチングを指定することができます。

おすすめ

転載: www.cnblogs.com/jwen1994/p/11210901.html