前へ     目次     索引     DocHome     次へ     
iPlanet Web Server, Enterprise Edition サーブレットに関するプログラマーズガイド



第 4 章   JSP (JavaServer Pages) の使用方法


この章では、iPlanet Web Server 6.0 で JSP (Java Server Pages) を有効にする方法および構成する方法について説明します。 この章は、以下の節から構成されています。



JSP を実行するためにサーバで必要なもの

iPlanet Web Server 6.0 には JRE (Java Runtime Environment) が付属していますが、ライセンス制限のため JDK (Java Development Kit) は付属していません。 サーバでは JRE を使用してサーブレットやコンパイル済みの JSP を実行できますが、新しい JSP の開発やコンパイルされていない JSP の導入には JDK が必要です。 JSP の事前コンパイルの詳細は、「JSP コマンドラインコンパイラ」 を参照してください。

iPlanet Web Server 6.0 では、表 4-1 に示したバージョン以降のJRE または JDK を、プラットフォームに合わせて使用する必要があります。


表 4-1 プラットフォームでサポートされる JRE または JDK のバージョン 

プラットフォーム

JRE/JDK/JVM/JIT のバージョン

コメント

Sun
Solaris
2.6、2.8
 

Solaris VM
(ビルド Solaris_JDK_1.2.2_07、
ネイティブスレッド、sunwjit)
 

jvm12.conf にある -Xrs フラグをコメントにしてスタックトレースを生成します。 詳しくは、「デバッグ用のスタックトレースの生成」を参照してください。

hprof など JVMPI ベースのプロファイル、または Solaris dbx を使用するデバッグには、以下の Web サイトからダウンロードできるリファレンス実装を使用してください。

http://java.sun.com/products/jdk/1.2/jre/  

Windows NT 4.0  

Java バージョン 1.2.2 Classic VM (ビルド JDK-1.2.2_007、ネイティブスレッド、symcjit)  

 

HPUX  

Java バージョン 1.2.2.07 Classic VM (ビルド JDK1.2.2.07-00/12/08-PA_
RISC1.1、ネイティブスレッド、HP)
 

iPlanet には、別の HotSpot VM (1.0.1fcs、混合モード、PA2.0 build 1.2.2.07-00/12/08-PA_RISC2.0) もバンドルされています。 この VM は有効になっていません。 このバージョンの使用法の詳細は、以下の Web サイトを参照してください。

http://www.unix.hp.com/java/infolibrary/ prog_guide/java2/hotspot.html  

AIX  

Java バージョン 1.2.2 Classic VM
(J2RE 1.2.2 IBM ビルド
ca122-20001206 (JIT 有効: jitc))
 

 

Compaq
Tru64
 

Java バージョン 1.2.2-8 Classic VM
(ビルド J2SDK.v.1.2.2:10/31/
2000-18:00、ネイティブスレッド、
jit_122)
 

iPlanet Web Server の Compaq バージョンは Compaq から入手できます。  

RedHat
Linux 6.2
 

Java バージョン 1.2.2 Classic VM
(ビルド Linux_JDK-1.2.2_FCS、
ネイティブスレッド、sunwjit)
 

この JVM のバージョンは blackdown.org から入手できます。  

必要な JDK バージョンの更新については、iPlanet Web Server の『インストールと移行』および最新のリリースノートを参照してください。

JDK 1.2 およびその他の JDK バージョンは、次の Sun Microsystems の Web サイトで入手できます。

http://java.sun.com/products/jdk/1.2/

JDK へのパスは以下のいずれかの方法で指定することができます。

  • サーバのインストール中にパスの指定ができます。

    iPlanet Web Server 6.0 のインストール時に、カスタム JDK (Java Development Kit) を使用するかどうか尋ねるダイアログボックスが表示されるので、そこでパスを指定できます。

  • サーバのインストール後に指定することもできます。

    JDK へのパスを指定するには、Web Server Administration Server に切り替えて、「Global Settings」タブを選択し、「Configure JRE/JDK Paths」ページを使用します。詳しくは、「JRE/JDK パスの構成」 を参照してください。

インストール中またはインストール後に JDK へのパスを指定する場合、そのパスには JDK をインストールしたディレクトリを指定します。



JRE/JDK パスの構成



iPlanet Web Server 6.0 のインストール時に、サーバに付属の JRE (Java Runtime Environment) をインストールするか、使用している JRE または JDK (Java Development Kit) へのパスを指定するかを選択できます。

サーバでは、JRE を使用してサーブレットを実行できますが、コンパイルされていない JSP を実行するには JDK が必要です。 JDK は、iPlanet Web Server にバンドルされていませんが、以下の Sun Microsystems の Web サイトからダウンロードできます。

http://java.sun.com/products/jdk/1.2/

iPlanet Web Server 6.0 では、「JSP を実行するためにサーバで必要なもの」 に一覧表示されたバージョンの JDK を使用してください。

インストール中に JRE のインストールまたは JDK へのパスの指定のどちらを選択するかにかかわらず、JRE または JDK の使用の切り替えをいつでも iPlanet Web Server に命令することができます。 Web Server Administration Server に切り替えて、「Global Settings」タブを選択し、「Configure JRE/JDK Paths」ページを使用します。 このページでも JDK へのパスを変更することができます。

「Configure JRE/JDK Paths」ページで 「JDK」ラジオボタンを選択した場合、以下のフィールドに値を入力します。

  • JDK Path

    JDK のパスを入力します。 これは JDK をインストールしたディレクトリです。

  • JDK Runtime Libpath

    JDK の実行時ライブラリパスを入力します。

  • JDK Runtime Classpath

    クラスパスには、サーブレットエンジンの実行に必要なディレクトリと jar ファイルへのパス、サーブレットの例、および追加したサーブレットに必要なその他のパスが設定されます。新しいクラスパスの値を追加することはできますが、既存の値にはサーブレットの操作に必須のパスが設定されているので削除しないでください。

「JRE」ラジオボタンを選択した場合、以下のフィールドに値を入力します。

  • JRE Path

    JRE のパスを入力します。 これは JRE をインストールしたディレクトリです。

  • JRE Runtime Libpath

    JRE の実行時ライブラリパスを入力します。



      JDK 実行時ライブラリパス、JDK 実行時クラスパス、または JRE 実行時ライブラリパスがわからない場合、フィールドには何も入力せずデフォルトのパスが使用されるようにしてください。

     



JRE と JDK の切り替えには「Configure JRE/JDK Paths」ページを使用するのがいちばん簡単ですが、以下のようにプログラミング用ファイルを編集しても行えます。

  • UNIX では次の操作を行います。

    server_root/https-admserv/start-jvm ファイルを編集します。

    現在サーバで JRE を使用している場合、このファイルには変数 NSES_JRE がインクルードされています。 サーバで JDK を使用するには、変数 NSES_JDK を追加し、その値として JDK のディレクトリを指定します。 NSES_JRE 変数の値を変更する必要もあります。

    NSES_JDK は JDK のインストールディレクトリを、NSES_JRE は JDK のインストールディレクトリにある JRE ディレクトリ、つまり jdk_dir/jre を指している必要があります。

  • Windows NT では次の操作を行います。

    Java ライブラリへのパスを magnus.conf の中の extrapath 設定に追加します。

    レジストリ HKEY_LOCAL_MACHINE/SOFTWARE/Netscape/Enterprise/6.0/NSES_JDK および NSES_JRE 変数を編集します。 サーバで JDK の使用が有効になっている場合、両方の変数が必要です。 サーバで使用するのが JRE の場合は、NSES_JRE 変数だけを設定します。

    NSES_JDK は JDK のインストールディレクトリを、NSES_JRE は JDK のインストールディレクトリにある JRE ディレクトリ、つまり jdk_dir/jre を指している必要があります。



    警告  

    これらの Windows NT レジストリエントリを編集するときは、十分注意してください。 値を間違えると、iPlanet Web Server の再インストールが必要になる場合もあります。

     





      JRE または JDK パスへの変更を有効にするには、サーバマネージャの「Preferences」タブにある「On/Off」オプションからサーバを再起動する必要があります。

     





ユーザインタフェースの使用

ユーザインタフェースを使用した JSP の設定の詳細は、オンラインヘルプで以下の内容を参照してください。

次のページは Web Server Administration Server の「Global Settings」タブにあります。

  • 「Configure JRE/JDK Paths」ページ

次のページはサーバマネージャの「Java」タブにあります。

  • 「Enable/Disable Servlets/JSP」ページ

  • 「Configure JVM Attributes」ページ

  • 「Delete Version Files」ページ

次のページはクラスマネージャの「Virtual Servers」タブにあります。 クラスマネージャを開くには、サーバマネージャの「Virtual Server Class」タブにある「Manage Classes」ページを選択し、リストからクラスを選択して「Manage」ボタンを選択します。

  • 「Java Web Apps Settings」ページ



JSP の有効化

JSP を有効にするには、以下の手順に従います。

  1. サーブレットを有効にします。 サーバマネージャの「Java」タブを選択し、「Enable/Disable Servlets/JSP」タブを選択します。 「Enable Java Globally」ボックスをチェックし、サーバ全体に対してサーブレットを有効にします。 単一仮想サーバクラスに対してサーブレットを有効にするには、「Enable Java for Class」ボックスをチェックします。 サーバ全体に対して Java を有効にしてから、単一クラスに対してサーブレットを有効にします。 デフォルトでは、Java はサーバ全体および各仮想サーバクラスに対して有効になっています。

  2. enable="true" に設定されている jsp-servlet 要素を web-apps.xml ファイルに追加します。 web-apps.xml ファイルの詳細は、第 2 章「Web アプリケーション」を参照してください。

  3. JVM クラスパスに tools.jar を追加します。 詳しくは、付録 C「JVM の構成」を参照してください。



クライアントで JSP を使用できるようにする方法

以下のどちらかの方法で、JSP がクライアントで使用できるようになります。



キャッシュのバージョンファイルの削除

JSP (JavaServer Pages) の情報をキャッシュするために、サーバでは以下のディレクトリが使用されます。

server_root/https-server_id/ClassCache/virtual_server_id/webapp_uri/
(virtual_server_id は仮想サーバ ID、webapp_uri は Web アプリケーションの URI を示す)

web-apps.xml ファイルにある jsp-servlet 要素の scratchdir 初期設定パラメータを使用して、JSP クラスキャッシュディレクトリの場所を変更できます。 詳しくは、「その他の JSP 初期設定パラメータ」を参照してください。

サーバは JSP ページを処理すると、JSP に関連付けられた .java および .class ファイルを作成し、ClassCache ディレクトリの下位の JSP クラスキャッシュに格納します。

このキャッシュには、バージョン番号が記述されている Version ファイルが格納されており、サーバはこのファイルを使用してディレクトリの構造とキャッシュ内のファイルを判別します。 バージョンファイルを削除するだけでキャッシュをクリーンアップすることができます。

サーバは、起動時にバージョンファイルを検出できない場合、対応するキャッシュのディレクトリ構造を削除してバージョンファイルを作成し直します。 次回サーバが JSP ページを処理するときに、JSP クラスキャッシュが作成し直します。

バージョンファイルの削除は、通常のファイルを削除するときと同じように ClassCache ディレクトリから削除するだけで行えます。または、サーバマネージャの「Java」>「Delete Version Files」ページで削除することもできます。 バージョンファイルを削除したあとは、必ず iPlanet Web Server を再起動してください。そうすることにより、該当するキャッシュがクリーンアップされ、サーバが JSP を処理する前にバージョンファイルが作成し直されます。



JSP コマンドラインコンパイラ



JSP を事前にコンパイルしてパフォーマンスを向上させることができます。これは本稼動用のサーバにお勧めします。 コマンドラインの JSP コンパイラが iPlanet Web Server にインクルードされています。 JSP コンパイラは server_root/bin/https/bin にあります。このディレクトリがパスにあることを確認してください。 IWS_SERVER_HOME 環境変数は、server_root ディレクトリに設定する必要があります。

jspc コマンドの形式を以下に示します。

jspc [options] jsp_files (options はオプションを示す)

jsp_files は、以下のどちらかにできます。

files

コンパイルされる一つ以上の JSP ファイル

-webapp dir

Web アプリケーションが含まれるディレクトリ。 このディレクトリとサブディレクトリに存在する JSP がすべてコンパイルされます。 WAR、JAR、または ZIP ファイルを指定することはできません。

jspc コマンドのオプションを以下に示します。

-q

-v0 と同様、Quiet モードを有効にします。 重大なエラーメッセージだけが表示されます。

-v[level]

冗長モードを有効にします。 level は省略可能で、デフォルト値は 2 です。level の値を以下に示します。

  • 0 - 重大なエラーメッセージだけ

  • 1 - エラーメッセージだけ

  • 2 - エラーおよび警告メッセージだけ

  • 3 - エラー、警告、および情報メッセージ

  • 4 - エラー、警告、情報、およびデバッグメッセージ

-d dir

コンパイル済みの JSP の出力ディレクトリを指定します。 パッケージディレクトリは、コンパイルされていない JSP のあるディレクトリに基づいて自動的に生成されます。 デフォルトのトップレベルディレクトリは、jspc が起動されるディレクトリです。

-dd dir

コンパイル済みの JSP のリテラル出力ディレクトリを指定します。 パッケージディレクトリは作成されません。 デフォルトは jspc が起動されるディレクトリです。

-p name

指定したすべての JSP のターゲットパッケージの名前を指定して、-d オプションによって実行されるデフォルトのパッケージ生成を取り消します。

-c name

最初にコンパイルされる JSP のターゲットクラスの名前を指定します。 以降にコンパオイルされる JSP は影響されません。

-mapped

HTML 行ごとの write 呼び出しと、JSP ファイル内の各行の位置を記述したコメントを生成します。 デフォルトでは、隣接した write 呼び出しはすべて結合されており、位置に関するコメントは生成されません。

-die[code]

重大なエラーが発生した場合、JVM を終了してエラーリターン code を生成します。 code がないか、解析できない場合は、デフォルト値の 1 に設定されます。

-uribase dir

コンパイルされたファイルと関係のある URI ディレクトリを指定します。 明示的に宣言された JSP ファイルだけに適用されます。

これは、uriroot と関係のある各 JSP ファイルの場所です。 判定できない場合、デフォルトは「/」になります。

-uriroot dir

URI ファイルを解決する対象となるルートディレクトリを指定します。 明示的に宣言された JSP ファイルだけに適用されます。

このオプションが指定されていない場合、最初の JSP ページのすべての親ディレクトリの WEB-INF サブディレクトリが検索されます。 サブディレクトリがあって JSP ページにもっとも近いディレクトリが使用されます。

JSP の親ディレクトリに WEB-INF サブディレクトリがない場合、jspc が起動されるディレクトリが使用されます。

-webinc file

-webapp オプションの部分サーブレットマッピングを作成します。このマッピングは、web.xml ファイルにペーストできます。

-webxml file

-webapp オプションの完全な web.xml ファイルを作成します。

-ieplugin class_id

Internet Explorer の Java プラグイン COM クラス ID を指定します。 <jsp:plugin> タグによって使用されます。

-genclass

Java ファイルとクラスファイルを生成します。 JDK の tools.jar ファイルが JVM クラスパスにある必要があります。

-webinc および -webxml オプションは、iPlanet Web Server の JSP には役立たない場合があります。

たとえば、以下のコマンド (1 行に入力) では、HelloWorld Web アプリケーションの JSP をコンパイルします。

jspc -d dir -genclass -webapp server_root/plugins/servlets/examples/web-apps/HelloWorld

コンパイルされた JSP は、dir/_jsps/ の下に書き込まれます。 次に、これらのクラスファイルを .JAR ファイルに置くことができます。

JSP コンパイラの詳細は、以下の Jakarta の Web サイトを参照してください。

http://jakarta.apache.org/

Jasper と iPlanet Web Server 6.0 は密接に統合されてはいないので、タグライブラリ、Bean などを使用した JSP の導入には、JVM クラスパスの編集が必要な場合があります。JVM クラスパスは、サーバマネージャの「Configure JVM Attributes」ページ、または jvm12.conf ファイルにあります。 JVM の設定の詳細は、付録 C「JVM の構成」を参照してください。


JSP コンパイラで生成されたパッケージ名

コンパイルされた JSP には、パッケージが作成されます。 パッケージ名は _jsps で始まり、先頭に下線が付いた JSP のパス名の構成要素がきます。 たとえば、/myjsps/hello.jsp に対して生成されるパッケージ名は _jsps._myjsps になります。

生成されたサーブレットに関連付けられるパッケージ名は暗黙のものであるため、JSP で Bean を使用する場合は、明示的な import 指令が必要です。Bean にパッケージ名がない場合は特に必要です。 以下に例を示します。

<%@page import="MyBean" %>
<jsp:useBean id="myBean" class="MyBean" />


JSP のプリコンパイルの指定

web-apps.xml ファイルの jsp-servlet 要素を使って、仮想サーバの JSP が事前にコンパイルされるよう iPlanet Web Server に命令することができます。 vs 要素に以下のタグを指定します。

<jsp-servlet enable="true">
   <init-param>
       <param-name>use-precompiled</param-name>
       <param-value>true</param-value>
   </init-param>
</jsp-servlet>

web-apps.xml ファイルの詳細は、第 2 章「Web アプリケーション」を参照してください。

事前にコンパイルされた JSP を実行するために JDK をインストールする必要はありません。 ただし、新しい JSP を開発するには JDK が必要です。 JDK のインストールの詳細は、「JSP を実行するためにサーバで必要なもの」 を参照してください。


その他の JSP 初期設定パラメータ

web-apps.xml ファイルの jsp-servlet 要素には、以下の初期設定パラメータを指定することができます。 JSP コンパイラでは、ファイルに追加されていないパラメータにはデフォルト値が使用されます。

keepgenerated

デフォルトの true に設定すると、生成された Java ファイルを保持します。 false に設定すると、Java ファイルを削除します。

largeFile

true に設定すると、静的 HTML は別のデータファイルに保存されます。 この機能は、JSP が非常に大きい場合に役立ちます。 デフォルト値は false です。

scratchdir

生成されたすべてのコードを格納するために作成される作業ディレクトリ。 このパラメータが指定されていない場合、デフォルトの場所は server_root/https-server_id/ClassCache/virtual_server_id/webapp_uri/ になります。

mappedfile

true に設定すると、HTML 行ごとの write呼び出しと、JSP ファイル内の各行の位置を記述したコメントを生成します。 デフォルトでは、隣接した write 呼び出しはすべて結合されており、位置に関するコメントは生成されません。

ieClassId

Internet Explorer の Java プラグイン COM クラス ID。 <jsp:plugin> タグによって使用されます。

use-precompiled

true に設定すると、仮想サーバの JSP が事前にコンパイルされ、実行時にコンパイルする必要がないよう指定されます。 デフォルト値は false です。

true に設定すると、JSP への変更は自動的には読み込みし直されません。

コマンドライン JSP コンパイラを使用して JSP をコンパイルし、クラスを JAR ファイルに保存して、JAR ファイルを Web アプリケーションの WEB_INF/lib ディレクトリに置くことができます。



JSP タグライブラリおよび標準のポータブルタグ



iPlanet Web Server は、JSP タグライブラリおよび標準のポータブルタグをサポートしています。 タグライブラリの詳細は、以下の Web サイトにある JSP 1.1 仕様を参照してください。

http://java.sun.com/products/jsp/download.html


前へ     目次     索引     DocHome     次へ     
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated September 17, 2001