Oracle Containers for J2EE JSPタグ・ライブラリおよびユーティリティ・リファレンス 10g(10.1.3.1.0) B31854-01 |
|
このマニュアルでは、Oracle Containers for J2EE(OC4J)が提供するタグ・ライブラリ、JavaBeansおよびその他のユーティリティについて説明します。これらは、JSP標準に基づいて実装されています。また、JavaServer Pages標準タグ・ライブラリ(JSTL)のサポートに関する説明、およびOC4J以外のOracleコンポーネントが提供するタグ・ライブラリのサマリーも記載しています。
Oracle固有の機能と、OC4J JSPコンテナ、標準JSPテクノロジおよび標準JSP 1.2タグ・ライブラリの機能の概要は、『Oracle Containers for J2EE JavaServer Pages開発者ガイド』で説明しています。
この章には、次の項目が含まれます。
最初の項で紹介するタグとJavaBeansには、型の拡張機能、XML/XSLとの統合、データベース・アクセスおよび便利なプログラミング機能など、多様な機能が備わっています。
次の各項で紹介するOracleの拡張機能は、タグ・ライブラリまたはカスタムJavaBeansを使用して実装されます。この拡張機能は、JSP標準とJavaBeans標準に準拠しています。
Oracle JSP Markup Language(JML)タグ・ライブラリは、Oracle Application Serverのリリースから正式に削除されました。
開発者は、JavaServer Pages標準タグ・ライブラリ(JSTL)提供のタグを使用する必要があります。JSTLでは、標準化された実装にJMLと類似した機能がカプセル化されています。JSTLの詳細は、「JavaServer Pages標準タグ・ライブラリのサポート」を参照してください。
注意
JMLを除く既存のライブラリはサポート対象です。JSTLで使用できないカスタム・ライブラリの機能のうち、有効と判断される機能は、必要に応じて、JSTL標準に採用される予定です。
このマニュアルでは、タグの説明の構文表記に、次の規則を使用しています。
[...]
)で囲まれています。
<%=
jspExpression %>
というJSPの実行時の式を使用して、タグの属性値を設定できます。
taglib
ディレクティブには、任意の接頭辞を指定できます。
JSPページでは、スカラー値の表現をコアとなるJavaの型に依存しています。ただし、次に示す標準の型カテゴリは、いずれもJSPページでの使用に適していません。
int
、float
およびdouble
など)これらの型の値には、スコープを指定できません。つまり、JSPのスコープ・オブジェクト(page
、request
、session
またはapplication
スコープ)に格納できません。これは、スコープ・オブジェクトに格納できるのはオブジェクトのみであるためです。
java.lang
パッケージにあるラッパー・クラス(Integer
、Float
およびDouble
など)これらの型の値はオブジェクトであるため、理論上ではJSPスコープ・オブジェクトに格納できます。ただし、ラッパー・クラスはJavaBeanモデルに準拠しておらず、引数が0(ゼロ)のコンストラクタを提供していないため、jsp:useBean
操作でこの型を宣言できません。
さらに、ラッパー・クラスのインスタンスは不変です。値を変更するには、インスタンスを新たに作成して、適切に割り当てる必要があります。
これらの制限事項を回避するために、OC4Jは、oracle.jsp.jml
パッケージにJmlBoolean
、JmlNumber
、JmlFPNumber
およびJmlString
JavaBeanクラスを用意し、最も一般的なJavaの型をラップします。
詳細は、「JML拡張型の概要」を参照してください。
OC4Jは、JSPアプリケーション内にある様々なスコープのJavaオブジェクトのライフ・サイクルを管理するため、JspScopeListener
インタフェースを提供します。
標準のサーブレットとJSPのイベント処理は、javax.servlet.http.HttpSessionBindingListener
インタフェースを介して実行されますが、これは、セッション・ベースのイベントのみを処理します。OracleのJspScopeListener
をHttpSessionBindingListener
と統合すると、セッション・ベースのイベントの他に、ページ・ベース、リクエスト・ベースおよびアプリケーション・ベースのイベントも処理できます。
詳細は、「JspScopeListenerによるJSPのイベント処理」を参照してください。
JSP構文を使用すると、HTMLコードの他に、テキスト・ベースのMIMEタイプを生成できます。特に、XML出力を動的に作成できます。ただし、JSPページを使用してXML文書を生成する場合は、XMLデータをクライアントに送信する前に、XMLデータに適用するスタイルシートが必要になる場合があります。この場合、JavaServer Pagesテクノロジでは、JSPページに使用する標準の出力ストリームがサーバーを通じて直接書き戻されるため、この処理は困難です。
OC4Jには、JSPページのすべてまたは一部を、出力前にXSLのスタイルシートを使用して変換するように指定する特別のタグが用意されています。入力は、タグ・ボディまたはXML DOMオブジェクトから可能で、XML DOMオブジェクトからブラウザへの出力が可能です。
ページ内の異なる部分にスタイルシートを個別に指定する場合は、これらのタグを単一のJSPページ内で繰り返し使用できます。
次の追加XMLサポートもあります。
XMLユーティリティ・タグのサマリーを、表1-1に示します。XMLの機能はdbOpen
SQLタグおよびcacheXMLObj
Web Object Cacheタグにもあります。詳細は、第5章「XMLとXSLに関するタグのサポート」を参照してください。
標準JSP 1.2のXMLサポートの詳細は、『Oracle Containers for J2EE JavaServer Pages開発者ガイド』を参照してください。
OC4Jには、Oracle Databaseにアクセスするための一連のカスタムJavaBeansが用意されています。oracle.jsp.dbutil
パッケージには、次のBeanが含まれています。
ConnBean
は、データベース接続をオープンします。このBeanは、データ・ソースおよび接続プーリングもサポートします。
CursorBean
は、問合せ(UPDATE
、INSERT
およびDELETE
文)およびストアド・プロシージャ・コールに対する一般的なDMLサポートを提供します。
詳細は、「データ・アクセスに関するJavaBeans」を参照してください。
OC4Jには、JSPプログラマ向けに、JavaBeansの機能をラップするSQL機能用のカスタム・タグ・ライブラリが用意されています。これらのタグのサマリーを、表1-2に示します。詳細は、「データ・アクセス用SQLタグ」を参照してください。
Webサイトのパーソナライズは、行動およびデモグラフィック・データに基づいて、サイトのユーザー向けにリコメンデーションを作成する機能です。リコメンデーションは、ユーザーのWebセッション中にリアルタイムで作成されます。ユーザーの動作はデータベース・リポジトリ内に保存され、将来のユーザーの動作を予測するためのモデルの構築に使用されます。
OracleAS Personalizationは、Oracle Databaseのデータ・マイニング・アルゴリズムを使用して、ユーザーに最も関連するコンテンツを選択します。通常、過去および現在におけるユーザーの動作に関する大量のデータを使用して、OracleAS Personalizationリコメンデーション・エンジンによって、リコメンデーションが計算されます。これは、常識的な経験則に依存し、システム内でルールを手動定義する必要がある他のアプローチよりも優れています。
OracleAS Personalizationタグ・ライブラリにより、幅広い層のJSP開発者が、この機能をHTML、XMLまたはJavaScriptページで使用できるようになります。タグ・インタフェースのレイヤーは、リコメンデーション・エンジンのJava APIの最上部に位置します。
表1-3に、OracleAS Personalizationタグ・ライブラリのサマリーを示します。
詳細は、第10章「パーソナライズ・タグ」を参照してください。
OC4Jが提供するWebサービス・タグ・ライブラリを使用すると、開発者は、Webサービスのクライアント・アプリケーション用JSPページを簡単に作成できます。実装には、RPCスタイルまたはドキュメント・スタイルのサービスをサポートするSOAPベースの機能を使用します。クライアント・アプリケーションでは、Web Services Description Language(WSDL)文書にアクセスした後、WSDL情報を使用してWebサービスの操作にアクセスします。
また、このタグ・ライブラリでは、Oracleによる動的起動APIの実装を使用します。この実装の説明は、『Oracle Application Server Web Services開発者ガイド』に記載されています。クライアント・アプリケーションで実行時にWSDL文書を取得する場合は、動的起動APIを使用して、WSDL文書に記述されているSOAP操作を起動します。
このWebサービス・タグ・ライブラリのサマリーを表1-4に示します。詳細は、第11章「Webサービス・タグ」を参照してください。
OC4Jには、ファイルへのアクセス(アップロードとダウンロード)用とアプリケーションからの電子メール・メッセージ送信用のタグ・ライブラリが用意されています。
ファイルのアップロードには、httpUpload
タグまたはoracle.jsp.webutil.fileaccess.HttpUploadBean
JavaBeanを使用できます。ファイルのダウンロードには、httpDownload
タグまたはHttpDownloadBean
JavaBeanを使用できます。表1-5に、ファイル・アクセス・タグのサマリーを示します。詳細は、「ファイル・アクセスJavaBeansとファイル・アクセス・タグ」を参照してください。
電子メール・メッセージを、必要に応じて、サーバー・サイドまたはクライアント・サイドの添付とともに送信するには、oracle.jsp.webutil.email.SendMailBean
JavaBeanまたはsendMail
タグを使用します。表1-6にsendMail
タグのサマリーを示します。詳細は、「メールJavaBeanとメール・タグ」を参照してください。
タグ | 説明 | 属性 |
---|---|---|
sendMail |
JSPページから電子メール・メッセージを送信します。タグの機能には、グローバリゼーション・サポートが組み込まれています。 |
host |
OC4Jには、JSPページでのEnterprise JavaBeansの使用を簡素化するカスタム・タグ・ライブラリが用意されています。OC4J EJBタグの機能は、J2EE仕様に従っています。このタグを使用すると、web.xml
ファイルの構成情報を使用して、EJBを名前でインスタンス化できます。
ホーム・インスタンスの作成、EJBインスタンスの作成およびEJBのコレクション間の反復などに使用するタグがあります。表1-7に、EJBタグ・ライブラリのサマリーを示します。詳細は、「EJBタグ」を参照してください。
OC4Jには、その他のユーティリティ・タグとして、日付を表示するタグ、適切な通貨で金額を表示するタグ、数値を表示するタグ、コレクション間を反復するタグ、ユーザーが特定のロールに属しているかどうかに応じてタグ・ボディを評価してインクルードするタグ、および現行のファイルの最終変更日付を表示するタグがあります。表1-8に、これらのタグのサマリーを示します。詳細は、「一般的なユーティリティ・タグ」を参照してください。
この項では、次の情報を提供します。
この項で紹介するOracleタグ・ライブラリは、JSP標準に準拠しています。
Oracle Application ServerとOC4Jには、次のキャッシング機能があります。
これは、アプリケーションの外部でメンテナンスされるHTTPレベルのキャッシュで、非常に高速なキャッシュ操作を行います。コンテンツ・ベースのキャッシュであるため、静的データ(HTML、GIFまたはJPEGファイルなど)または動的データ(サーブレットやJSPの結果など)をキャッシュできます。このキャッシュが、アプリケーション外部にコンテンツ・ベースのキャッシュとして存在する場合は、オブジェクト(JavaオブジェクトやXML DOMオブジェクトなど)をJavaオブジェクト形式でキャッシュすることはできません。また、キャッシュ内のデータに適用可能な後処理操作は、Javaではコード化できず、キャッシュ自体で事前定義されます。
Oracle Web Cacheには、Edge Side IncludesをサポートするESIプロセッサが備わっており、Webサーバーから独立して、動的にコンテンツのアセンブリができるXMLスタイルのマークアップ言語がサポートされます。このテクノロジによって、開発者は、必要に応じてキャッシュ可能なページを個別のキャッシュ・オブジェクトに分割できます。OC4Jでは、このテクノロジがJESIタグ・ライブラリによってサポートされています。
Edge Side IncludesとOracle Web Cacheの概要、およびJESIタグ・ライブラリの詳細は、第6章「Edge Side Includes用のJESIタグ」を参照してください。
Oracle Web Cacheの詳細は、『Oracle Application Server Web Cache管理者ガイド』を参照してください。
これはアプリケーション・レベルのキャッシュで、Java Webアプリケーションに埋め込まれ、メンテナンスされます。Webベースとオブジェクト・ベースの両方を混合したキャッシュです。カスタム・タグ・ライブラリまたはAPIを使用すると、ユーザーはページ・フラグメントの境界を定義でき、JSPページやサーブレットの実行の中間結果と部分的な結果を、キャッシュ内のオブジェクトとして取得、格納、再利用、処理および管理できます。ページ・フラグメントごとに別個のキャッシュ・オブジェクトを生成できます。作成されるオブジェクトは、HTMLまたはXMLのテキスト・フラグメント、XML DOMオブジェクトまたはJavaのシリアライズ化可能なオブジェクトなどです。これらのオブジェクトは、HTTPリクエストおよびセッション・セマンティクスと関連付けると簡単にキャッシュできます。あるいは、HTTP外部で再利用できます。たとえば、アプリケーションでキャッシュ内のXMLオブジェクトをSimple Mail Transfer Protocol(SMTP)、Java Message Service(JMS)、アドバンスト・キューイング(AQ)またはSimple Object Access Protocol(SOAP)を介して出力する場合に再利用できます。
詳細は、第7章「Web Object CacheのタグとAPI」を参照してください。
Oracle Application Server Java Object Cacheは、プロセス内、プロセス間およびローカル・ディスク上でJavaオブジェクトを管理するための汎用Javaキャッシュです。Java Object Cacheは、取得や作成が困難でコストがかかるオブジェクトのローカル・コピーを管理することによって、アプリケーションのパフォーマンスを大幅に向上させます。デフォルトでは、OC4J Web Object Cacheは、Oracle Application Server Java Object Cacheを基礎となるキャッシュ・リポジトリとして使用します。
Java Object Cacheの詳細は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。
Webアプリケーション全体の設定におけるOC4J Web Object Cacheのロールを理解していることが重要です。このキャッシュは、Javaレベルで機能し、サーブレットとJSPアプリケーションのHTTP環境と緊密に統合されています。一方、Oracle Application Server Java Object Cacheは、Javaオブジェクト・レベルで機能しますが、HTTPとは統合されていません。Oracle Web Cacheの場合は、HTTPと緊密に統合され、Web Object Cacheと比べてはるかに高速です。ただし、Javaレベルでは動作せず、Webアプリケーション・コードで直接起動することはできません。たとえば、このキャッシュでは、スタイルシートをJ2EEコンテナにあるキャッシュ内のDOMオブジェクトに適用したり、他のプロトコルにあるキャッシュ内の結果を再利用したり、またはDOM操作を直接実行することはできません。ただし、Oracle Web Cacheでは、スタイルシートを、DOMオブジェクトではなく、HTTPを使用して元のWebサーバーからキャッシュされたテキスト・ベースのXML文書に適用できます。
Web Object Cacheは、アプリケーションの主要なWebキャッシュとしては使用しません。サーブレットやJSPページを実行するJava Virtual Machine内に埋め込まれた補助的なキャッシュです。Web Object Cacheのキャッシュ結果に対する検索パスには、JVM、JSPおよびサーブレットの各エンジンが含まれているため、通常は、Oracle Web Cacheと比べると、Web Object Cacheからの方がページの処理にはるかに時間がかかります。
Web Object Cacheは、Oracle Web CacheやOracle Application Server Java Object Cacheの必要性を否定したり、排除するものではありません。あくまでもWebアプリケーションの全体的なフレームワークにおける補足的なキャッシング・コンポーネントであり、必要に応じて、他のキャッシング製品とともに使用する必要があります。実際に、Web Object Cacheでは、Java Object Cacheをそのデフォルトのリポジトリとして使用しています。また、OC4J JESIタグとWeb Object Cacheタグを組み合せて使用することによって、Web Object CacheとOracle Web Cacheを同一ページで使用できます。
Oracle Web Cacheは、プライマリ・キャッシング・コンポーネントと考えてください。キャッシュ内のページをHTTPクライアントに直接供給し、大量のHTTP通信量を迅速に処理し、ほとんどのWebサイトの要件に適応しています。Oracle Web Cacheを使用すると、Webページの全体または一部を(JESIタグを使用して)格納できます。キャッシュ内のページは、クライアントへの送信前に、ある程度カスタマイズできます。たとえば、Cookie置換やページ・フラグメントの連結などが対象となります。
Oracle Web Cacheをできるだけ多用して、レスポンスを高速化し、Webアプリケーション・サーバーやバックエンド・データベースの負荷を軽減することをお薦めします。大部分のWebページのキャッシング・ニーズに対しても、Oracle Web Cacheのみで対処できます。
Oracle Web Cacheの補完としてWeb Object Cacheを使用すると、JSPおよびサーブレットの実行の中間結果を取得し、後でこのキャッシュ結果をJavaアプリケーション・ロジックの他の部分で再利用できます。キャッシュ結果のオブジェクトを繰り返し再利用できず、クライアントへ送信するにはキャッシュ内のオブジェクトに対して後処理が必要である場合は、WebアプリケーションでWeb Object Cacheを使用するメリットはありません。
Web Object Cacheでは、Oracle Application Server Java Object Cacheと比べると、実行結果の一部を動的Webページに格納および維持することがはるかに容易になります。Java Object Cacheは、一般的なJavaアプリケーションにとって純粋なオブジェクト・ベースのフレームワークであるため、埋込みが可能なHTTP環境を認識できません。たとえば、キャッシュ・キーは、HTTPのCookieまたはセッションに自動的には依存しません。Java Object CacheをWebアプリケーション内で直接使用する場合、Webページに必要なすべてのインタフェースは開発者の責任で行います。Java Object Cacheでキャッシュ・メンテナンス・ポリシーを指定するにはプログラミングが必要ですが、かわりに構成ファイルを介してポリシーを指定できます。
OC4Jには、Oracle Application Serverのキャッシング機能で使用する次の2つのタグ・ライブラリがあります。
この項では、この2つのライブラリのサマリーを示します。
OC4Jでは、JESIタグ・ライブラリを、ESIタグとWebキャッシングに関するEdge Side Includes機能への便利なインタフェースとして提供しています。開発者は、WebアプリケーションでESIタグを直接使用できますが、JESIタグは、JSP環境で使用したほうがはるかに便利です。
表1-9に、JESIタグ・ライブラリのサマリーを示します。詳細は、「Oracle JESIタグの説明」を参照してください。
OC4J Web Object Cacheは、Javaで記述されたWebアプリケーションが、JSPページやサーブレットなどの動的Webページが生成した部分的な結果と中間結果を取得、格納、再利用、後処理およびメンテナンスできるようにする機能です。プログラミング・インタフェースについては、タグ・ライブラリ(JSPページでの使用)とJava API(サーブレットでの使用)を備えています。
表1-10に、Web Object Cacheタグ・ライブラリのサマリーを示します。詳細は、「Web Object Cacheタグの説明」を参照してください。
|
![]() Copyright © 2002, 2006 Oracle Corporation. All Rights Reserved. |
|