ここでは、JSPの開発を容易にするWebコンテナの機能について説明します。
JSPを利用した アプリケーションの作り方や詳しい説明については、JSPの仕様を参照してください。
JSPを使用したアプリケーションの開発中に、正しくJSPの表示ができるかどうかを確認するために、アプリケーションを作り直して再配備することなく、配備済みのアプリケーションのJSPを入れ替えることが可能です。これをJSPのオートリロード機能と呼びます。
JSPのオートリロード機能を利用する場合は、事前にInterstage Web application deployment descriptor(glassfish-web.xml)の<jsp-config>に、以下のいずれかのプロパティを指定してください。
development:リクエスト毎に、JSPが入れ替えされているかどうか判定を行うとき
checkInterval:一定間隔毎に、JSPが入れ替えされているかどうか判定を行うとき
例
リクエスト毎にJSPが入れ替えされているかどうか判定を行う場合のglassfish-web.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> <glassfish-web-app> <jsp-config> <property name="development" value="true" /> </jsp-config> </glassfish-web-app>
JSPのオートリロードを実施するためには、配備済みアプリケーションのJSPファイルを編集・置換します。
配備済みアプリケーションは、以下のディレクトリに配備モジュールを展開した形式で格納されています。
[Java EE 6共通ディレクトリ]\domains\domain1\applications\[アプリケーション名]
[Java EE 6共通ディレクトリ]/domains/domain1/applications/[アプリケーション名]
[Java EE 6共通ディレクトリ]\nodes\localhost-domain1\[サーバーインスタンス名]\applications\[アプリケーション名]
[Java EE 6共通ディレクトリ]/nodes/localhost-domain1/[サーバーインスタンス名]/applications/[アプリケーション名]
注意
サーバーインスタンス配下のJSPファイルを更新した後で、IJServerクラスタを起動し直すと、同期化処理によりInterstage Java EE 6 DASサービスのファイルに置き換えられてしまいます。そのため、サーバーインスタンス配下のJSPファイルを更新する場合は、Interstage Java EE 6 DASサービス配下のJSPファイルに対しても同じ変更をするようにしてください。
複数のサーバーインスタンスをもつIJServerクラスタの場合は、すべてのサーバーインスタンスに対して、配下のJSPファイルを編集/置き換えする必要があります。
JSPのオートリロードの対象となるファイルは、以下の通りです。
JSP
JSPから静的include(注1)、動的include(注2)されているJSPやtxtなどのファイル
web.xmlの<jsp-config>-<jsp-property-group>配下の<include-prelude>または<include-coda>に指定したファイル
tldファイル(WEB-INF、またはそのサブディレクトリ配下)
tldファイルで定義されているタグファイル(WEB-INF/tags、またはそのサブディレクトリ配下)(注3)
JSPから参照されているタグファイル(WEB-INF/tags、またはそのサブディレクトリ配下)
以下のファイルは、JSPのオートリロードの対象外です。
tldファイル(WEB-INF/lib配下のjar内のMETA-INF、またはそのサブディレクトリ配下)
tldファイルから参照されているタグファイル(WEB-INF/lib配下のjar内のMETA-INF/tags、またはそのサブディレクトリ配下)
タグクラス
静的includeとは、以下のようにincludeディレクティブを使用してファイルをincludeすることです。
例
<%@ include file="include.txt"%>
動的includeとは、以下のように<jsp:include>タグを使用してファイルをincludeすることです。
なお、動的includeでは、JSPのオートリロード機能が有効でない場合も、txtなどの静的ファイルについては、リクエスト毎に読み込まれるため、変更が反映されます。
例
<jsp:include page="include.txt" flush="true" />
tldファイルの<tag-file>タグ配下に、<path>タグで定義されている場合です。
例
<tag-file> <name>sampleTag</name> <path>/WEB-INF/tags/sample/sample.tag</path> </tag-file>
注意
JSPの入れ替え方法に関する注意事項は、「1.3.2 Webアプリケーションの注意事項」の「JSPの入れ替えについて」を参照してください。