WebLogic Server Web アプリケーション、サーブレット、JSP の開発

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

JSP の作成とコンフィグレーション

以下の節では、JSP を作成およびコンフィグレーションする方法について説明します。

 


Java Server Pages (JSP) のコンフィグレーション

Java Server Pages (JSP) ファイルをデプロイするには、Web アプリケーションのルート (またはルートの下のサブディレクトリ) に格納する必要があります。JSP コンフィグレーション パラメータは、WebLogic 固有のデプロイメント記述子である weblogic.xmljsp-descriptor 要素の下位要素に定義します。これらのパラメータは次の機能を定義します。

これらの下位要素の詳細については、「jsp-descriptor」を参照してください。

 


JSP のサーブレットとしての登録

JSP は、J2EE 標準のデプロイメント記述子 web.xml の servlet 要素を使用して、サーブレットとして登録できます。web.xml ファイルは、Web アプリケーションの WEB-INF ディレクトリにあります。サーブレット コンテナは、既知のサーブレットのマップを保持します。このマップは、コンテナに対するリクエストを解決するために使われます。このマップにエントリを追加することを、サーブレットを「登録する」と言います。このマップへのエントリの追加は、web.xml の servlet-mapping エントリで servlet 要素を参照することによって行います。

JSP はサーブレットの一種です。JSP の登録は、サーブレット登録の特別なケースです。通常、JSP は最初の呼び出し時に JSP ファイルの名前に基づいて暗黙的に登録されます。したがって、myJSPfile.jsp ファイルは myJSPfile.jsp としてマッピング テーブルに登録されます。次の例に示すように、JSP を暗黙的に登録することができます。次の例では、myJSPfile.jsp という暗黙的な名前ではなく、/main という名前を指定して JSP を要求しています。

次の例で、/main を含む URL は myJSPfile.jsp を起動します。

<servlet>
     <servlet-name>myFoo</servlet-name>
     <jsp-file>myJSPfile.jsp</jsp-file>
</servlet>
<servlet-mapping>
     <servlet-name>myFoo</servlet-name>
     <url-pattern>/main</url-pattern>
</servlet-mapping>

JSP をサーブレットとして登録することによって、サーブレットに対して行うのと同様に、ロード順、初期化属性、およびセキュリティ ロールを JSP に指定できます。

 


JSP タグ ライブラリのコンフィグレーション

WebLogic Server では、カスタム JSP タグを作成および使用できます。カスタム JSP タグは、JSP ページ内から呼び出すことができる Java クラスです。カスタム JSP タグを作成するには、それらをタグ ライブラリに登録して、それらの動作をタグ ライブラリ記述子 (TLD) ファイルに定義します。この TLD は、JSP が組み込まれている Web アプリケーションで使用できなければなりません。そのためには、Web アプリケーション デプロイメント記述子にその TLD を定義します。TLD ファイルは、Web アプリケーションの WEB-INF ディレクトリに格納してください。このディレクトリは、外部には公開されません。

Web アプリケーション デプロイメント記述子には、タグ ライブラリの URI パターンを定義します。この URI パターンは、JSP ページの taglib ディレクティブの値と一致する必要があります。また、TLD の格納場所も定義します。たとえば、JSP ページに次の taglib ディレクティブがあるとします。

<%@ taglib uri="myTaglib" prefix="taglib" %>

また、TLD が Web アプリケーションの WEB-INF ディレクトリに格納されているとします。この場合、Web アプリケーション デプロイメント記述子に次のエントリを作成します。

<jsp-config>
<taglib>
<taglib-uri>myTaglib</taglib-uri>
<tablig-location>WEB-INF/myTLD.tld</taglib-location>
</taglib>
</jsp-config>

タグ ライブラリは、.jar ファイルとしてもデプロイできます。

カスタム JSP タグ ライブラリの作成の詳細については、『WebLogic JSP Tag Extensions プログラマーズ ガイド』を参照してください。

WebLogic Server には、アプリケーションで使用できるカスタム JSP タグがいくつか付属しています。これらのタグを使用すると、キャッシング、クエリ属性ベースのフロー制御の効率化、およびオブジェクト セットに対する反復処理の効率化を行うことができます。詳細については以下を参照してください。

 


ウェルカム ファイルのコンフィグレーション

Web アプリケーション開発者は、Web アプリケーション デプロイメント記述子内で、ウェルカム ファイルと呼ばれる部分的な URI の順序付けされたリストを定義できます。このメカニズムの目的は、Web コンポーネントにマップされていない WAR 内のディレクトリ エントリに対応する URI に対するリクエストがあった場合に、コンテナが URI に付加するために使用する部分的 URI の順序付けされたリストを、デプロイヤが指定できるようにすることです。ユーザが特定のファイル名を指定せずに URL を入力できるので、このウェルカム ページの機能でサイトが使いやすくなります。

注意 : ウェルカム ファイルは、JSP、静的ページ、またはサーブレットとすることができます。

ウェルカム ファイルは、Web アプリケーション レベルで定義します。サーバが複数の Web アプリケーションのホストになっている場合は、Web アプリケーションごとに別個のウェルカム ファイルを定義する必要があります。 ウェルカム ファイルは、web.xml 内で welcome-file-list 要素を使用して定義します (web.xml ファイルは、Web アプリケーションの WEB-INF ディレクトリにあります)。ウェルカム ファイルのコンフィグレーション例を次に示します。

コード リスト 5-1 ウェルカム ファイルの例
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>foo.bar.WelcomeServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>*.foo</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>/welcome.foo</welcome-file>
</welcome-file-list>

詳細については、サーブレット 2.4 仕様のセクション 9.10 を参照してください。

 


HTTP エラー応答のカスタマイズ

WebLogic Server をコンフィグレーションすると、特定の HTTP エラーまたは Java 例外が発生したときに、標準の WebLogic Server エラー応答ページを使う代わりに、カスタム Web ページなどの HTTP リソースを使って応答させることができます。

カスタム エラー ページは、J2EE 標準の Web アプリケーション デプロイメント記述子 (web.xml) の error-page 要素で定義します (web.xml ファイルは、Web アプリケーションの WEB-INF ディレクトリにあります)。

 


HTTP リクエストのエンコーディングの識別

WebLogic Server は、HTTP リクエストに含まれるバイナリ (バイト) データを、サーブレットで予期される正しいエンコーディングに変換します。着信する POST データは、request.getParameter(..) などのメソッドで使用するためにサーバサイドで正しいエンコーディングに変換される必要のある、特定のエンコーディングでコード化されている場合があります。

コード セットを定義する方法は 2 種類あります。

 


IANA 文字セットの Java 文字セットへのマッピング

文字セットを記述するために Internet Assigned Numbers Authority (IANA) によって割り当てられる名前は、Java で使用される名前とは異なることがあります。すべての HTTP 通信が IANA 文字セット名を使用し、これらの名前は常に同じとは限らないので、WebLogic Server は IANA 文字セット名を Java 文字セット名に内部でマップし、通常は正しいマッピングを判断できます。ただし、IANA 文字セットを Java 文字セットの名前に明示的にマッピングすると、あいまいさを解決することができます。

IANA 文字セットを Java 文字セットにマップするには、WebLogic 固有のデプロイメント記述子である weblogic.xmlcharset-mapping 要素で文字セット名を設定します。iana-charset-name 要素に IANA 文字セット名を定義し、java-charset-name 要素に Java 文字セット名を定義します。「charset-mapping」を参照してください。

次に例を示します。

<charset-mapping>
    <iana-charset-name>Shift-JIS</iana-charset-name>
    <java-charset-name>SJIS</java-charset-name>
</charset-mapping>

 


JSP の最初と最後での暗黙的インクルードのコンフィグレーション

Web アプリケーションの web.xml デプロイメント記述子の <jsp-property-group> 要素内に、<include-prelude> 要素と <include-coda> 要素をそれぞれ追加することで、JSP ページのグループに対し prelude (ヘッダとも言います) および coda (フッタとも言います) を暗黙的にインクルードできます。それらの値は、コンテキストに相対的なパスであり、Web アプリケーション内の要素に対応している必要があります。それらの要素が存在する場合、指定されたパスが、プロパティ グループ内の各 JSP ページの最初と最後に、それぞれ自動的に (include ディレクティブの場合のように) インクルードされます。グループ内に複数の include または coda 要素がある場合、それらは登場順にインクルードされます。複数の JSP プロパティ グループが JSP ページに適用される場合、対応する要素は JSP コンフィグレーション セクションに登場するのと同じ順序で処理されます。

ファイル /template/prelude.jspf および /template/coda.jspf について考えてみます。次の例において、これらのファイルは各ファイルの最初と最後にコードを挿入するために使用されています。

コード リスト 5-2 暗黙的インクルード
<jsp-config>
  <jsp-property-group>
    <display-name>WebLogicServer</display-name>
    <url-pattern>*.jsp</url-pattern>
    <el-ignored>false</el-ignored>
    <scripting-invalid>false</scripting-invalid>
    <is-xml>false</is-xml>
    <include-prelude>/template/prelude.jspf</include-prelude>
    <include-coda>/template/coda.jspf</include-coda>
  </jsp-property-group>
</jsp-config>

 


JSP プロパティ グループのコンフィグレーション

JSP プロパティ グループとは、JSP ページを表す一連のファイルに適用される、プロパティの集合です。これらのプロパティは、web.xml デプロイメント記述子の jsp-property-group 要素における 1 つまたは複数の下位要素で定義します。

JSP プロパティ グループで定義されるほとんどのプロパティは、変換単位全体、つまり URL パターンによって照合される要求された JSP ファイルと、include ディレクティブを使用してそこにインクルードされるすべてのファイルに対して、適用されます。例外は、page-encoding プロパティです。このプロパティは、URL パターンによって照合される各 JSP ファイルに個別に適用されます。JSP プロパティ グループにおける適用可能性は、1 つまたは複数の URL パターンによって定義されます。URL パターンには、サーブレット 2.4 仕様の第 11 章「Mapping Requests to Servlets」で定義されているものと同じ構文が使用されますが、これらの URL パターンがバインドされるのは変換時です。プロパティ グループ内のすべてのプロパティは、URL パターンのいずれかに一致する Web アプリケーション内のリソースに適用されます。また、(JSP ファイルのものであるという) 暗黙的なプロパティが存在します。JSP プロパティ グループは、タグ ファイルには影響を与えません。

JSP プロパティ グループのルール

以下は、JSP プロパティ グループに適用されるルールの一部です。

JSP プロパティ グループの特長

次の目的のために、jsp-property-group をコンフィグレーションできます。

JSP プロパティ グループの詳細については、JSP 2.0 仕様の第 3 章「JSP Configuration」を参照してください。

 


XML 構文を使用した JSP ドキュメントの記述

JSP 2.0 仕様では、XML 構文を活用できるようにすることで、JSP ドキュメントの概念という面での改良がなされています。また、JSP ドキュメントは、プロパティ グループを使用するように拡張されています。JSP ドキュメントとは、XML 構文を用いて記述された JSP ページです。JSP ドキュメントは、そのようにして暗黙的または明示的に JSP コンテナに対して記述される必要があります。その後、JSP コンテナはそれを XML ドキュメントとして処理し、整形式であるかどうかをチェックして、リクエストがあれば、それをエンティティ宣言のように適用します。JSP ドキュメントは、標準的な JSP セマンティクスで動的コンテンツを生成するのに使用されます。

以下は、JSP 標準タグ ライブラリを使用して、ルート要素としてテーブルを有する XML ドキュメントを生成する、単純な JSP ドキュメントの一例です。テーブル要素には、値 1、2、および 3 を含む 3 つの行下位要素があります。詳細およびその他のサンプルについては、JSP 2.0 仕様のセクション 6.4「Examples of JSP Documents」を参照してください。

コード リスト 5-3 単純な JSP ドキュメント
<table>
<c:forEach
xmlns:c="http://java.sun.com/jsp/jstl/core"
var="counter" begin="1" end="3">
<row>${counter}</row>
</c:forEach>
</table>

JSP ドキュメントの使い方

JSP ドキュメントは、以下を含むいくつかの使い方ができます。

JSP ドキュメントについての重要な情報

以下は、JSP ドキュメントに関連するいくつかの重要な情報です。

JSP ドキュメントの詳細については、JSP 2.0 仕様の第 6 章「JSP Documents」を参照してください。


  ページの先頭       前  次