0

最近 struts 2 の調査を開始したので質問がありますが、struts 2 にはインターセプターがあり、サーブレットには同じタスクを実行するフィルターがあることをお知らせください。次に、struts 2 でのインターセプターの必要性は何ですか?両方。

4

2 に答える 2

1

Struts2は、フィルターを使用して、フレームワークに与えられたすべての要求をインターセプトします。

フィルタ」はサーブレット仕様の一部です。つまり、サーブレットAPIの一部です。

interceptorsはStruts2フレームワークの一部であり、STRuts 2フレームワークによって実行されるリクエスト処理の一部にすぎません。Struts2を使用している場合は、Struts2アクションの機能をラップするためにインターセプターを使用する必要があります。

ショートインターセプターは、さまざまな場所で使用できる再利用可能なコンポーネントのセットです。Struts2は、データ転送、データ変換、検証などの各アクションリクエストに存在するいくつかの一般的なタスクを処理するインターセプターのセットを作成しました。

于 2012-05-29T06:34:43.063 に答える
1

私が考えることができるいくつかの違い:

  • フィルターは Java EE の一部であり、インターセプターは Struts の一部です。
  • フィルターはアクション固有ではなく、URL 固有 (アクション固有を意味する場合もあります) ではなく、サーブレットにのみマップできます。
  • ファイラーはデプロイヤー向けですが (開発者も使用しますが、デプロイ時に十分な知識があればデプロイ時に変更できます)、デプロイヤーはどのフィルターをどのリクエストに対して呼び出すかを選択できますが、インターセプターは開発者向けであり、追加方法を決定します。アクションの実行前、実行後のロジック。
  • メソッドのフィルタリングはフィルターでは利用できませんが、インターセプターでは可能です。
  • Struts フレームワークでリクエストを処理していない場合、つまりサーブレットを使用して特定のリクエストを処理している場合、インターセプターを使用することはできません。

編集:回答の一部としてコメントを移動しました:

パターンとしてのインターセプターは Struts2 に固有のものではなく、Spring、Hibernate などで利用可能です

于 2012-05-29T06:42:01.490 に答える