JSP 2.0,2.1 JSP ページ ISO-8859-1
2.9 リクエストおよびレスポンスのフィルタリング機 能
この節では,リクエストおよびレスポンスのフィルタリング機能について説明します。
この節の構成を次の表に示します。
表 2‒34 この節の構成(リクエストおよびレスポンスのフィルタリング機能)
分類 タイトル 参照先
解説 アプリケーションサーバが提供するサーブレットフィルタ(built-in フィルタ) 2.9.1
フィルタ連鎖の推奨例 2.9.2
実装 DD での定義 2.9.3
設定 実行環境での設定(Web アプリケーションの設定) 2.9.4
注 「運用」および「注意事項」について,この機能固有の説明はありません。
アプリケーションサーバで使用できるフィルタリングの機能には,Servlet 仕様で規定されている機能と,
アプリケーションサーバで提供する機能があります。どちらの機能も,サーブレット/JSP のリクエストや レスポンスに対してフィルタリングをする機能です。
Servlet 仕様で規定されているフィルタリング機能では,サーブレット/JSP を実行する前のリクエスト,ま たはサーブレット/JSP を実行したあとのレスポンスをラップします。これによって,データの変更,リソー スに対するトレースの取得などができます。
また,アプリケーションサーバが提供するフィルタリング機能では,セッション情報を引き継いだり,HTTP レスポンスを圧縮したりできます。アプリケーションサーバでは,これらのフィルタリング機能を使用する ためにサーブレットフィルタを提供しています。アプリケーションサーバが提供するサーブレットフィル タをbuilt-in フィルタといいます。次項でアプリケーションサーバが提供する built-in フィルタについて 説明します。
2.9.1 アプリケーションサーバが提供するサーブレットフィルタ(built-in フィルタ)
アプリケーションサーバでは,次に示す機能を使用するためのサーブレットフィルタ(built-in フィルタ)
を提供しています。
• J2EE サーバ間のセッション情報の引き継ぎ(メモリセッションフェイルオーバ機能)
J2EE サーバ間のセッション情報を引き継ぐために,アプリケーションサーバは built-in フィルタとし てセッションフェイルオーバ用フィルタを提供しています。
• HTTP レスポンスの圧縮
HTTP リクエストに対する HTTP レスポンスを圧縮するために,アプリケーションサーバは built-in フィルタとして HTTP レスポンス圧縮フィルタを提供しています。
built-in フィルタの種類を次の表に示します。また,Web アプリケーションに built-in フィルタを組み込 むことによって使用できる機能の参照先をあわせて示します。
表 2‒35 built-in フィルタの種類
built-in フィルタの種類 機能の説明 参照先マニュアル 参照個所
セッションフェイルオーバ 用フィルタ
J2EE アプリケーションで実行中のセッション情報を 管理します。J2EE サーバで障害が発生したときに,管 理しているセッション情報をほかの J2EE サーバに引 き継ぎます。
マニュアル「アプリ ケーションサーバ 機 能解説 互換編」
6.2,
6.4
HTTP レスポンス圧縮フィ ルタ
サーブレット,JSP,および静的コンテンツへの HTTP リクエストに対する HTTP レスポンスを gzip 形式に 圧縮します。
このマニュアル 2.10
ポイント
各フィルタを Web アプリケーションに組み込む場合は,フィルタマッピング定義で,「セッションフェイルオー バ用フィルタ」,「HTTP レスポンス圧縮フィルタ」の順に定義してください。セッションフェイルオーバ用フィ ルタは,すべての built-in フィルタ,ユーザのフィルタよりも前に配置する必要があります。
なお,Servlet 3.0 以降では,web.xml ではなく API でのフィルタ定義ができますが,built-in フィルタは API でのフィルタ定義はできません。
以降で,built-in フィルタの HTTP リクエスト・HTTP レスポンスへの作用,built-in フィルタの動作条 件に関する制約について説明します。
(1) HTTP リクエストおよび HTTP レスポンスへの作用
built-in フィルタは,クライアント側から送信される HTTP リクエストのリクエストヘッダ,およびリク エストボディに対して作用して,情報の削除,追加,変更などを実施する場合があります。また,サーバか ら送信される HTTP レスポンスのレスポンスヘッダ,およびレスポンスボディに対して同様に作用する場 合もあります。built-in フィルタの HTTP リクエストおよび HTTP レスポンスへの作用を次の表に示し ます。
表 2‒36 built-in フィルタの HTTP リクエストおよび HTTP レスポンスへの作用 built-in フィルタの種
類 HTTP リクエストへの作用 HTTP レスポンスへの作用
セッションフェイル オーバ用フィルタ
− −
HTTP レスポンス圧 縮フィルタ
−
レスポンスボディが圧縮される場合,Content-Encoding ヘッダに「gzip」を指定します。ま た,レスポンスボディを gzip 形式で圧縮しま す。
(凡例) −:該当なし
(2) 動作条件に関する制約
ユーザのフィルタと,built-in フィルタを同時に使用する場合,フィルタ連鎖の中で built-in フィルタが呼 び出される順序に制約があります。
built-in フィルタごとに次に示す制約について説明します。
• 位置に関する制約
フィルタ連鎖中の built-in フィルタの位置(呼び出される順序)に関する制約です。
• 動作条件に関する制約
built-in フィルタが動作する上での前提条件などの動作条件に関する制約です。
• 前後に配置するほかのサーブレットフィルタに対する制約
built-in フィルタの前後に配置するサーブレットフィルタに対する制約です。
(a) セッションフェイルオーバ用フィルタに対する制約
セッションフェイルオーバ用フィルタに対する制約を次の表に示します。
表 2‒37 セッションフェイルオーバ用フィルタに対する制約
制約の種類 説明
位置に関する制約 フィルタ連鎖の中で,最初に呼び出される必要があります。すべてのユーザのフィルタ および built-in フィルタよりも前に配置する必要があります。
動作条件に関する制約 −
前後に配置するほかのサーブレッ トフィルタに対する制約
−
(凡例) −:該当なし
(b) HTTP レスポンス圧縮フィルタに対する制約
HTTP レスポンス圧縮フィルタに対する制約を次の表に示します。
表 2‒38 HTTP レスポンス圧縮フィルタに対する制約
制約の種類 説明
位置に関する制約 −
動作条件に関する制約 −
前後に配置するほかのサーブレッ トフィルタに対する制約
javax.servlet.http.HttpServletResponse クラスの setHeader メソッド,addHeader メソッド,setIntHeader メソッド,または addIntHeader メソッドを使用して,
Content-Length ヘッダ,または Content-Encoding ヘッダの設定を変更するサーブ レットフィルタと同時に使用する場合,そのサーブレットフィルタは HTTP レスポン ス圧縮フィルタよりあとに配置する必要があります。
(凡例) −:該当なし
2.9.2 フィルタ連鎖の推奨例
フィルタ連鎖の推奨例を次に示します。次に示す順序で連鎖するように配置してください。
なお,例で説明するユーザのフィルタは,リクエストボディおよびレスポンスボディに作用する一般的な フィルタを想定しています。
• セッションフェイルオーバ用フィルタ,HTTP レスポンス圧縮フィルタを使用する場合 1. セッションフェイルオーバ用フィルタ
2. HTTP レスポンス圧縮フィルタ
• セッションフェイルオーバ用フィルタ,HTTP レスポンス圧縮フィルタ,およびユーザのフィルタ
(FilterA)を使用する場合
1. セッションフェイルオーバ用フィルタ 2. HTTP レスポンス圧縮フィルタ 3. ユーザのフィルタ(FilterA)
• セッションフェイルオーバ用フィルタ,およびユーザのフィルタ(FilterC)を使用する場合 1. セッションフェイルオーバ用フィルタ
2. ユーザのフィルタ(FilterC)
• HTTP レスポンス圧縮フィルタ,およびユーザのフィルタ(FilterD)を使用する場合 1. HTTP レスポンス圧縮フィルタ
2. ユーザのフィルタ(FilterD)
2.9.3 DD での定義
リクエストおよびレスポンスのフィルタリング機能の定義は,web.xml に指定します。
DD でのリクエストおよびレスポンスのフィルタリング機能の定義については,それぞれ次の場所を参照し てください。
• セッションフェイルオーバ用フィルタについては,マニュアル「アプリケーションサーバ 機能解説 拡 張編」の「5. J2EE サーバ間のセッション情報の引き継ぎ」を参照してください。
• HTTP レスポンス圧縮フィルタについては,「2.10 HTTP レスポンス圧縮機能」を参照してくださ い。
2.9.4 実行環境での設定(Web アプリケーションの設定)
リクエストおよびレスポンスのフィルタリング機能を定義する場合,Web アプリケーションの設定が必要 です。cosminexus.xml を含まない Web アプリケーションのプロパティを設定または変更する場合にだ け参照してください。
実行環境での Web アプリケーションの設定は,サーバ管理コマンドおよび属性ファイルで実施します。リ クエストおよびレスポンスのフィルタリングの定義には,フィルタ属性ファイルおよび WAR 属性ファイ ルを使用します。
フィルタ属性ファイルおよび WAR 属性ファイルで指定するタグは,DD と対応しています。DD
(web.xml)での定義については,「2.9.3 DD での定義」を参照してください。