Oracle ADF Webアプリケーションは、Oracle ADFバインディング・フィルタを使用して、バインディング・コンテキストへのアクセスを必要とするHTTPリクエストを前処理します。
コントロール・バインディングをWebページに最初に追加したとき、あるいは、Strutsアプリケーションの場合はビジネス・サービス・メソッドをページ・フロー・ダイアグラムのデータ・アクションに最初にドラッグしたときに、JDeveloperではADFバインディング・フィルタが作成され、アプリケーションのweb.xml
ファイルに自動的に設定されます。web.xml
ファイルには、サーブレット・コンテキスト・パラメータ、ADFバインディング・フィルタ・クラスおよびフィルタ・マッピングの各要素が追加されます。
このトピックでは、次の項目について説明します。
バインディング・フィルタは、サーブレット・フィルタ(oracle.adf.model.servlet.ADFBindingFilter
のインスタンス)であり、次の処理を実行します。
フィルタ初期化時の文字コードを、web.xml
ファイルでフィルタ・パラメータとして指定した名前でオーバーライドします。フィルタ<init-param>
のパラメータの名前はencoding
です。
ADFContextを作成します。これはADFアプリケーションの実行コンテキストであり、セキュリティ・コンテキストと、リクエスト・オブジェクトおよびレスポンス・オブジェクトを含む環境クラスなど、ADFに関するコンテキスト情報を含みます。
ユーザーのHTTPセッションのバインディング・コンテキストを初期化します。
同一のブラウザ(たとえばフレームセット)から受信するHTTPリクエストをシリアライズし、マルチスレッドの問題の発生を回避します。
データ・コントロール・インスタンスにリクエストを受信することを通知して、必要な設定をリクエスト単位で行えるようにします。
レスポンスがクライアントに送信された後でデータ・コントロール・インスタンスに通知して、必要なクリーンアップをリクエスト単位で行えるようにします。
サーブレット・コンテキスト・パラメータでは、アプリケーション・バインディング・コンテキストを定義するためにバインディング・フィルタが実行時に読み取るCPXファイルを指定します。サーブレット・コンテキスト・パラメータは、次の書式でweb.xml
に定義されます。
<context-param>
<param-name>CpxFileName</param-name>
<param-value>view.DataBindings</param-value>
</context-param>
param-name
要素は値CpxFileName
を含む必要があり、param-value
要素はアプリケーションのCPXファイルの完全修飾名を含む必要があります。
ADFバインディング・フィルタはjavax.servlet.Filter
インタフェースを実装し、web.xml
に次のように定義されます。
<filter>
<filter-name>adfBindings</filter-name>
<filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
</filter>
Oracle ADFバインディング・フィルタは、javax.servlet.Filter
インタフェースを実装します。
filter-name
要素は値adfBindings
を含む必要があり、filter-class
要素はバインディング・フィルタ・クラスの完全修飾名oracle.adf.model.servlet.ADFBindingFilter
を含む必要があります。
フィルタ・マッピングは、フィルタをWebアプリケーション内の静的なリソースまたはサーブレットにリンクします。マップされたリソースがリクエストされると、フィルタが起動します。フィルタ・マッピングは、web.xml
ファイルに次の例のように定義されます。
<filter-mapping>
<filter-name>adfBindings</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<url-pattern>*.jspx</url-pattern>
</filter-mapping>
filter-name
要素は値adfBindings
を含む必要があります。この例には、ページ書式タイプ.jsp
および.jspx
の両方のフィルタ・マッピングがあることがわかります。
アプリケーションに複数のフィルタがある場合、web.xml
ファイルでの記述は、必ず実行順になるようにしてください。実行時、フィルタは、このファイルに記述された順序でコールされます。
ADF固有のプロジェクト・ファイルについて
Oracle ADFバインディングについて
サーブレット・フィルタの詳細は、http://java.sun.com/products/servlet/docs.htmlでSun社の仕様を参照してください。
捕捉フィルタの詳細は、http://java.sun.com/blueprints/patterns/InterceptingFilter.htmlでSun社のペーパーを参照してください。
ADFバインディング・フィルタ・クラスのJavadocを表示する詳細は、次のトピックを参照してください。
oracle.adf.model.servlet.ADFBindingFilter
Copyright © 1997, 2007, Oracle. All rights reserved.