フィルタ:
フィルターは、コントロールにアクセスするために使用することができ、トランスコーディングアプリケーションを加入者の要求と応答の手続を処理することができます。フィルタは、サーブレット仕様の一部である、任意のJava Webプロジェクトを使用することができます。
フィルタを使用する前に、あなたが(オブジェクトをインスタンス化)独自のクラスのニーズに基づいて(継承java.Servlet.Filterインタフェース、3つの方法がINIT、のdoFilterとDestoryは)は、その後、ここでインスタンス化され、あなたも書くことができ、フィルタを定義する必要があり、次の使用のため。
1 < フィルター> 2 < フィルタ名>フィルタ名</ フィルタ名> 3。 < フィルタクラス>フィルタ対応するクラス</ フィルタクラス> 4 <! - 初期化パラメータ- > 5 < INIT- PARAM > 6 < PARAM名>パラメータ</ PARAM名> 7 < PARAM値>パラメータ</ PARAM値> 8 </ INIT-PARAM > 9 </ フィルタ>
フィルタは、特定のURLに関連付けられている必要があり役割を果たすことができ、:(フィルタ名は上記で定義されたフィルタで関連する3つの方法が)あります
1(濾過xxx.jspによって要求された場合にのみ)、リソースURLに関連付けられました
1 < フィルタマッピング> 2 < フィルタ名>过滤器名</ フィルタ> 3 < URLパターン> xxx.jsp </ URLパターン> 4 </ フィルタマッピング>
2. URLのディレクトリのすべてのリソースに関連付けられている(すべての要求は、フィルタになります)
1 < フィルタマッピング> 2 < フィルタ名>过滤器名</ フィルタ> 3 < URLパターン> / * </ URLパターン> 4 </ フィルタマッピング>
3.サーブレットに関連付けられている(サーブレットは、指定された要求をフィルタ)
1 < フィルタマッピング> 2 < フィルタ名>フィルタの名前</ フィルタ> 3 < URLパターン>サーブレット名</ URLパターン> 4 </ フィルタマッピング>
したがって、単純なStruts2のは、(構成上方web.xmlで行われる)をフィルタリングするように構成される。しかし、その実装プロセスは、どのようにそれのようなものでしょうか?
今、(要求が関連していると仮定して)クライアント要求があると仮定し、要求が(一連のフィルタ(フィルタ・チェーン)、それぞれに応じて、現在のフィルタに対応するオブジェクト・クラス・インスタンスのフィルタを通過させる通過しますそれはすべてのフィルタを通過するまですることによりない場合は、だけで現在のフィルターを通して、次のようにフィルタします(メソッドは、独自のフィルタリングロジックの内側に置かれている))initメソッドを呼び出し、doFilterメソッド内の呼び出し指定されたエラー・ページに転送。(以下のコードを実行するフィルタである場合、プロセスのdoFilterにおいてによるフィルタ)
1 //これは通常要求され、それを通過させる 2 chain.doFilter(リクエスト、レスポンス)。
次に呼び出すFilterDispatchar、ユーザの要求に応じて、異なる処理を.....(コンテンツではないフィルタ、それが説明されていません)