2012-04-07 13 views
11

私はこれを研究していますので、私はインタビューでよりうまく対応できます。私は明確かつ簡潔な答えを探しています。私が間違っているかを詳細に欠けている場合インターセプタとフィルタの違い - これは正しいのですか?

これまでのところ、すべての手段では、私を修正:

  1. フィルタをサーブレットAPIの一部であり、インターセプタは、Struts 2です(ただし、明らかに思える)
  2. インターセプタスタックは、コンフィグレーションされたパッケージ内のリクエストに対して起動し、フィルタはマップされたURLにのみ適用されます。
  3. インターセプタは、excludeMethodsおよびincludeMethodsを介して特定のターゲットアクションメソッドに依存して実行するかどうかを設定できますが、フィルタにはこの機能がありません。
  4. フィルタは、インターセプタがインターセプタパターンである間に、インターセプトフィルタパターンの実装です。

これは正確で完全な回答のようですか?何かを追加したり修正したりする必要がありますか?スレッドの問題/違いはどうですか?

答えて

2

私は最初のポイントが答えだと思いますが、あなたはおそらく

インターセプタは、支柱2とフィルタであるよりも、より多くを語ることができるはずサーブレットAPIでは

の一部であります事実、インタビュアーとして、Servelt APIとStruts 2のようなWebアプリケーションフレームワークの違いを正確に説明することを期待しています。これは、実際には、Java Webアプリケーションのエコシステムとインフラストラクチャ全体についての理解を示すチャンスです。

のStruts 2フレームワークは、サーブレットフィルタ内に実装されてどのように
  1. 良い答えは触れかもしれません。

  2. struts 2以外のサーブレットフィルタで、同じWebアプリケーション内で使用する具体的な使用例はありますか?

  3. 実際にServlet API、Webアプリケーション、Webアプリケーション フレームワークなどは何ですか?

これらすべてのトピックの理解を示した回答は、私が推測するとおりです。私はこの質問に答え面接の一つで

+0

投稿した上記の3つの質問に対する回答をお聞きしたいと思いますか? – Harshana

+0

@Harshana私はあなたが独立した質問としてそれらを尋ねることをお勧めします。この質問に答えるのは混乱する形式になります。 – chad

1

のような、

インターセプタはStruts2の概念とアプリケーション開発者がそれを制御しているです。また、Struts2のアプリケーション境界と連携して動作し、Struts2の機能と共にActions、ValueStackなどのオブジェクトにアクセスできます。

フィルタはデプロイ時の設定に適していますが、それはアプリケーションへのアクセスが制限されており、ほとんどの場合、サーバーにデプロイされているほとんどのWebアプリケーションの総称です。

ロジックがコードとアプリケーションで結合されている場合、インターセプタやインフラストラクチャに適しているため、サーブレットフィルタに配置することができます。

2

フィルタは、サーブレットAPIからのものであり、インターセプタは、Strutsの2からあり、 違いは、Webアプリケーションやエンタープライズアプリケーションについて話すときインターセプタはウェブだけでなく、エンタープライズアプリケーションで使用することができるのに対し、 フィルタのみのWebアプリケーションで使用されています。 両方のライフサイクルメソッドも異なります。

インターセプタスタックは、すべての要求に対して起動します。 フィルタは、定義されているURLにのみ適用されます。 必要に応じてどちらか一方を使用します。リクエストごとにCookieが存在することを確認する必要があるとします。インターセプタを使用します。あなたはいくつかのリクエスト(URLによって駆動される)で外部アプリケーションをポップアップし、フィルタを使用する必要があると言います。

+0

"フィルタはWebアプリケーションでのみ使用されますが、インターセプタはWebアプリケーションとエンタープライズアプリケーションで使用できます。これは誤解を招きます。 「エンタープライズアプリ」については何も魔法はありませんが、すべてのウェブアプリの一部に過ぎません。また、フィルタをすべてのURLに簡単に適用することができ、実質的な違いはありません。 – orlade

0

フィルタ:サーブレット仕様に基づいて

  1. パターンが要求に合致する上で実行します。
  2. 設定できないメソッド呼び出し。

インターセプター:

Struts2のに基づいて
  1. フロントコントローラ( サーブレットフィルタ)に適合するすべての要求に対して実行します。特定のアクションの実行に追加の インターセプタを実行するように設定することもできます。
  2. excludeMethodsまたはincludeMethodsによって、インターセプタのメソッドを実行するか、 を実行しないかを設定できます。
関連する問題