転載する場合は出典を明記してください:
前述したように: Spring+SpringMVC+MyBatis の詳細な学習と構築 (16) - SpringMVC アノテーション開発 (上級)
Spring Web MVC のプロセッサ インターセプタは、サーブレット開発におけるフィルタに似ており、プロセッサの前処理と後処理に使用されます。
インターセプターを定義し、HandlerInterceptor インターフェースを実装します。インターフェースには 3 つのメソッドが提供されています。
ストラットには大きなインターセプターチェーンがあり、それをインターセプトするために任意のアクションリンクに追加できます。しかし、Spring のインターセプターはグローバルではありません。
springmvc インターセプターは、HandlerMapping のインターセプト設定を設定します。インターセプトが HandlerMapping で設定されている場合、HandlerMapping によって正常にマップされたハンドラーは、最終的にインターセプターを使用します。
一般的には推奨されません。
springmvc はグローバルのようなインターセプターを構成でき、springmvc フレームワークは、構成されたグローバルのようなインターセプターを各 HandlerMapping に挿入します。
複数のインターセプターの各メソッドの実行タイミングをテストします。
実行ログ情報:
概要:
preHandle メソッドはこの順序で実行され、postHandle と afterCompletion はインターセプター設定の逆の順序で実行されます。
実行ログ情報:
概要:
インターセプター 2 の preHandle は、インターセプター 1 が解放された後にのみ実行されます。
インターセプター 2 の preHandle は解放されず、インターセプター 2 の postHandle と afterCompletion は実行されません。
解放しないインターセプターがある限り、postHandleは実行されません。
実行ログ情報:
インターセプタ1のpreHandleは解放されず、postHandleとafterCompletionは実行されません。
インターセプター 1 の preHandle は解放されず、インターセプター 2 は実行されません。
テスト結果に基づいてインターセプターを適用します。
例: 統合ログ処理インターセプター。インターセプターの preHandle を変更する必要がある場合は、それを解放し、インターセプター チェーンの最初の位置に置く必要があります。
例: ログイン認証インターセプター。インターセプター チェーンの最初の位置に配置されます。権限検証インターセプターは、ログイン インターセプターの後に配置されます。 (ログイン通過後に権限が確認されるため)
(1) ユーザーリクエストURL
(2)傍受者が傍受検証を行う
リクエストされた URL がパブリックアドレス (ログインせずにアクセスできる URL) の場合は、それを渡します
ユーザーセッションが存在しない場合は、ログインページにジャンプします。
ユーザーセッションが存在する場合は、それを解放して操作を続行します。
クラスパス下の springmvc.xml の設定:
この記事が役に立ったら、WeChat で私にヒントを送ってください〜
以上がSpring+SpringMVC+MyBatis の詳細な学習と構築 (17) - SpringMVC インターセプターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。