ホームページ > Java > &#&チュートリアル > Spring のフィルターとインターセプターの違いは何ですか?

Spring のフィルターとインターセプターの違いは何ですか?

不言
リリース: 2019-04-03 17:36:15
転載
11260 人が閲覧しました

この記事では、Spring のフィルターとインターセプターの違いについて説明します。一定の参考値があるので、困っている友人は参考にしていただければ幸いです。

Spring のフィルターとインターセプターの違いは何ですか?

#Interceptor

Main 関数: ユーザーのログイン ステータスや権限の検証などのユーザー要求をインターセプトし、処理します。コントローラーリクエストは HandlerInterceptor を通じて処理されます。

Interceptor は 2 つの状況に分かれます 1 つはセッションをインターセプトする Spring の HandlerInterceptor インターフェイスを実装し、mvc のインターセプト キューに登録する

preHandle() メソッドは Handler を呼び出す前に実行されます.インターセプト (上の図のステップ 3)、ビューがレンダリングされる前に postHandle() メソッドが呼び出されます (上の図のステップ 5)、 afterCompletion()メソッドは、対応するメソッドを返す前に実行されます。もう 1 つはメソッドをインターセプトするもので、指定されたメソッドの呼び出しの前後に @Aspect アノテーションを使用してインターセプトする必要があります。

Filter

主な機能: 文字エンコーディングのフィルタリングとビジネス ロジックの判断主にユーザーのリクエストの前処理に使用され、論理的な判断も行うことができます。

フィルターは、リクエストがサーブレット コンテナーに入り、service() メソッドを実行する前にフィルターによってフィルター処理されます (上の図のステップ

1)。これは springmvc フレームワークに依存しません。 Intcept と似ていますが、 servlet に依存するだけで済みます。フィルタの起動はWEBアプリケーションの起動とともに開始され、一度初期化するだけで次回以降は傍受可能です。

フィルターには次のタイプがあります:

ユーザー認証フィルター: ユーザー要求をチェックし、要求に従って不正なユーザー要求をフィルターします;

ログフィルター: 特定の特別なユーザー要求を記録します。

デコード フィルター: 非標準エンコードのリクエストをデコードします。

フィルターとインターセプターの違い

1. フィルターは関数コールバック (doFilter() メソッド) に基づいていますが、インターセプターは Java リフレクション (AOP のアイデア) に基づいています。 。

2. フィルターはサーブレット コンテナに依存しますが、インターセプターはサーブレット コンテナに依存しません。

3. フィルターはほぼすべてのリクエストに対して機能しますが、インターセプターはアクション リクエストに対してのみ機能します。

4. インターセプターはアクションのコンテキストと値スタック内のオブジェクトにアクセスできますが、フィルターはアクセスできません。

5. アクションのライフサイクルでは、Interceptor は複数回呼び出すことができますが、Filter はコンテナの初期化時に 1 回しか呼び出すことができません。

6. フィルターはリクエストとレスポンスでのみ操作できますが、インターセプターはリクエスト、レスポンス、ハンドラー、modelAndView、例外で操作できます。

【関連する推奨事項:

Java ビデオ チュートリアル ]

以上がSpring のフィルターとインターセプターの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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