WebSphere Application Server for z/OS, Version 6.1   
             オペレーティング・システム: z/OS

             目次と検索結果のパーソナライズ化

サーブレット・フィルター

サーブレット・フィルター には、 filter という名前の新規タイプのオブジェクトが含まれています。 このオブジェクトは、要求を変換したり、応答を変更したりすることができます。

指定されたリソースまたはリソースのグループの入出力を一群のフィルターが処理できるように、 いくつかのフィルターをチェーニングすることができます。

一般的なフィルターとしては、ロギング・フィルター、イメージ変換フィルター、暗号化フィルター、 および Multipurpose Internet Mail Extensions (MIME) タイプ・フィルター (機能的には、サーブレット・チェーニングと同等のもの) があります。 フィルターはサーブレットではありませんが、両者のライフ・サイクルは非常に似ています。

フィルターは、次のように処理されます。

  1. Web コンテナーは、 要求されたリソースに対する LoggingFilter を含む FilterChain を構成する必要があるかどうかを判別します。

    FilterChain は、LoggingFilter の呼び出しから開始し、 要求されたリソースの呼び出しで終了します。

  2. ほかのフィルターがチェーンの中に入る必要がある場合は、 Web コンテナーは、それらのフィルターを LoggingFilter より後ろで、かつ要求されたリソースより前に配置します。
  3. Web コンテナーは、次に LoggingFilter のインスタンス化と初期化を行い (前もって行われていない場合)、 doFilter(FilterConfig) メソッドを起動してチェーンを開始します。
  4. LoggingFilter は、要求と応答オブジェクトをプリプロセスし、 フィルター・チェーン doFilter(ServletRequest, ServletResponse) メソッドを起動します。

    このメソッドは、処理をチェーン内の次のリソース、すなわち要求されたリソースに渡します。

  5. LoggingFilter は、 フィルター・チェーン doFilter(ServletRequest, ServletResponse) メソッドから戻ると、 要求と応答オブジェクトにポストプロセッシングを実行してから、応答をクライアントに戻します。

遷移: Java 仕様 2.4 によって、RequestDispatcher でフィルターを呼び出す代わりに、 REQUEST、FORWARD、INCLUDE、ERROR などの考えられる値で、デプロイメント記述子に新規 <dispatcher> エレメントを定義できます。
以下に例を示します。
<filter-mapping>
		<filter-name>Logging Filter</filter-name>
		<url-pattern>/products/*</url-pattern>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>REQUEST</dispatcher>
 	</filter-mapping>
これは、要求の転送同様、フィルターがクライアントから直接要求に適用される必要があることを示しています。 また、INCLUDE および ERROR 値の追加は、フィルターがインクルードされた要求および <error-page> 要求にも適用される必要があることを示します。 <dispatcher> エレメントを指定しない場合、デフォルトは REQUEST です。

サーブレット・フィルター用の Filter、FilterChain、FilterConfig クラス

以下のインターフェースは、javax.servlet パッケージの一部として定義されます。

以下のクラスは、javax.servlet.http パッケージの一部として定義されます。




関連資料
例: com.ibm.websphere.LoggingFilter.java を使用したフィルターの実装
Web アプリケーション: 学習用リソース
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 9:12:22 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/ae/cweb_sfilt.html