Spring+SpringMVC+MyBatis の詳細な学習と構築 (17) - SpringMVC インターセプター

PHP中文网
リリース: 2017-07-03 17:30:26
オリジナル
1455 人が閲覧しました

転載する場合は出典を明記してください:

前述したように: Spring+SpringMVC+MyBatis の詳細な学習と構築 (16) - SpringMVC アノテーション開発 (上級)

1.インターセプターの定義

Spring Web MVC のプロセッサ インターセプタは、サーブレット開発におけるフィルタに似ており、プロセッサの前処理と後処理に使用されます。

インターセプターを定義し、HandlerInterceptor インターフェースを実装します。インターフェースには 3 つのメソッドが提供されています。

リーリー

2.インターセプターの設定

ストラットには大きなインターセプターチェーンがあり、それをインターセプトするために任意のアクションリンクに追加できます。しかし、Spring のインターセプターはグローバルではありません。

2.1 特定のマッピングのインターセプターを構成する

springmvc インターセプターは、HandlerMapping のインターセプト設定を設定します。インターセプトが HandlerMapping で設定されている場合、HandlerMapping によって正常にマップされたハンドラーは、最終的にインターセプターを使用します。

リーリー

一般的には推奨されません。

2.2 すべてのマッピングのグローバル インターセプターを構成する

springmvc はグローバルのようなインターセプターを構成でき、springmvc フレームワークは、構成されたグローバルのようなインターセプターを各 HandlerMapping に挿入します。

リーリー

3.傍受テスト

3.1 テスト要件

複数のインターセプターの各メソッドの実行タイミングをテストします。

3.22 つのインターセプターを書く

3.3 両方のインターセプターが解放されました

実行ログ情報:

リーリー

概要:

preHandle メソッドはこの順序で実行され、postHandle と afterCompletion はインターセプター設定の逆の順序で実行されます。

3.4 インターセプター 1 は許可されますが、インターセプター 2 は許可されません

実行ログ情報:

リーリー

概要:

インターセプター 2 の preHandle は、インターセプター 1 が解放された後にのみ実行されます。

インターセプター 2 の preHandle は解放されず、インターセプター 2 の postHandle と afterCompletion は実行されません。

解放しないインターセプターがある限り、postHandleは実行されません。

3.5 インターセプター 1 は許可されません、インターセプター 2 は許可されません

実行ログ情報:

リーリー

インターセプタ1のpreHandleは解放されず、postHandleとafterCompletionは実行されません。

インターセプター 1 の preHandle は解放されず、インターセプター 2 は実行されません。

4.まとめ

テスト結果に基づいてインターセプターを適用します。

例: 統合ログ処理インターセプター。インターセプターの preHandle を変更する必要がある場合は、それを解放し、インターセプター チェーンの最初の位置に置く必要があります。

例: ログイン認証インターセプター。インターセプター チェーンの最初の位置に配置されます。権限検証インターセプターは、ログイン インターセプターの後に配置されます。 (ログイン通過後に権限が確認されるため)

5. インターセプターアプリケーション(ログイン認証の実装)

5.1要件

(1) ユーザーリクエストURL

(2)傍受者が傍受検証を行う

リクエストされた URL がパブリックアドレス (ログインせずにアクセスできる URL) の場合は、それを渡します

ユーザーセッションが存在しない場合は、ログインページにジャンプします。

ユーザーセッションが存在する場合は、それを解放して操作を続行します。

5.2 コントローラーメソッドのログインと終了

リーリー

5.3 ログイン認証インターセプトの実装

5.3.1ログインインターセプター

リーリー

5.3.2 インターセプターの構成

クラスパス下の springmvc.xml の設定:

この記事が役に立ったら、WeChat で私にヒントを送ってください〜

以上がSpring+SpringMVC+MyBatis の詳細な学習と構築 (17) - SpringMVC インターセプターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート