2.5.6 JSP事前コンパイルを使用しない場合のJSPコンパイル結果
JSP事前コンパイルを使用しない場合,JSPファイルのコンパイルは,JSPファイルへの初回アクセス時に実施されます。ここでは,JSP事前コンパイル機能を使用しない場合の,JSPコンパイル結果,およびコンパイル結果の出力先を変更する方法について説明します。
(1) JSPコンパイル結果のライフサイクル
JSP事前コンパイルを使用しない場合のJSPのコンパイル結果のライフサイクルについて説明します。
- コンパイル結果の生成
-
JSP事前コンパイル機能で事前にJSPファイルのコンパイルを実施していない場合は,JSPコンパイル結果は次のどちらかのタイミングで生成されます。
-
JSPに最初にアクセスするとき
-
DD(web.xml)でJSPに対し<load-on-startup>が指定されている,Webアプリケーションを開始するとき
-
- コンパイル結果の削除
-
JSPのコンパイル結果は,次のタイミングで削除されます。
-
J2EEアプリケーションのアンデプロイ時
-
J2EEサーバの起動時※
-
J2EEサーバの終了時※
- 注※
-
JSPコンパイル結果を保持しない設定にしている場合,削除されます。なお,J2EEサーバ起動時については,コンパイル結果の削除は,サーバが強制終了された場合に備えて実施されます。
-
(2) JSPファイルのコンパイル結果の保持
JSP事前コンパイルをしない場合,Webコンテナでは,JSPのコンパイル結果である,Javaソースファイルおよびクラスファイルを,J2EEサーバの再起動時に保持するかどうか設定できます。
JSPファイルのコンパイル結果を保持するための設定は,J2EEサーバのプロパティをカスタマイズして設定します。J2EEサーバの動作設定のカスタマイズについては,「2.5.8 実行環境での設定(J2EEサーバの設定)」を参照してください。
(3) JSPコンパイル結果の出力先
JSP事前コンパイルを実施していない場合,JSPコンパイル結果はJSP用テンポラリディレクトリに出力されます。
出力されるファイルは次のとおりです。
-
JSPファイルから生成されたJavaソースファイル
-
1.のJavaソースファイルをコンパイルしたクラスファイル
-
タグファイルから生成されたJavaソースファイル
-
3.のJavaソースファイルをコンパイルしたクラスファイル
ここでは,デフォルトの出力先と,出力先のディレクトリ構成について説明します。
なお,出力されるクラス名については,「2.5.7 JSPコンパイル結果のクラス名」を参照してください。
(a) デフォルトの出力先
JSP事前コンパイルを実行していない場合,JSPコンパイル結果は,JSP用テンポラリディレクトリ下に作成される,Webアプリケーション単位のディレクトリに出力されます。デフォルトのJSP用テンポラリディレクトリは次の場所になります。
- Windowsの場合
-
<Application Serverのインストールディレクトリ>\CC\server\repository\<サーバ名称>\web
- UNIXの場合
-
/opt/Cosminexus/CC/server/repository/<サーバ名称>/web
なお,JSP用テンポラリディレクトリは,デフォルト値が設定されていますが,必要に応じて変更できます。JSP用テンポラリディレクトリの変更については,「2.5.8 実行環境での設定(J2EEサーバの設定)」を参照してください。
JSP用テンポラリディレクトリ下にはWebアプリケーション単位でディレクトリが作成され,該当するWebアプリケーション内のJSPコンパイル結果が出力されます。
なお,Webアプリケーション単位のディレクトリは,コンテキストルート名を基にしたディレクトリ名となります。コンテキストルート名にスラッシュ(/),ドル記号($),パーセント(%),プラス記号(+)が含まれる場合は,次に示す文字に変換されます。
変換前の文字 |
変換後の文字 |
---|---|
/ |
$2f |
$ |
$24 |
% |
$25 |
+ |
$2b |
- 例:
-
JSP用テンポラリディレクトリがデフォルト,コンテキストルート名が「J2EE_AP1/WEB_AP1_war」である場合,該当するWebアプリケーションのJSPコンパイル結果の出力先を次に示します。
-
Windowsの場合
<Application Serverのインストールディレクトリ>\CC\server\repository\<サーバ名称>\web\J2EE_AP1$2fWEB_AP1_war
-
UNIXの場合
/opt/Cosminexus/CC/server/repository/<サーバ名称>/web/J2EE_AP1$2fWEB_AP1_war
-
(b) 出力先のディレクトリ構成
JSPコンパイル結果の出力先ディレクトリ構成を次の図に示します。
ディレクトリ構成について説明します。
-
タグファイルから生成されたクラスのパッケージ名は次の形式となります。
- WEB-INF/tags下のタグファイルの場合
-
org.apache.jsp.tag.web.</WEB-INF/tagsディレクトリ下のパス>
- WEB-INF/lib下のjarファイルに含まれるタグファイルの場合
-
org.apache.jsp.tag.meta.<jarファイル名をエンコードした文字列>.<jarファイル内のMETA-INF/tagsディレクトリ下のパス>
-
JSPファイルおよびタグファイルから生成されるクラスファイルの出力先ディレクトリのパス長は,OSの上限によって制限があります。OSの上限を超えるパス長になる場合は,JSPワークディレクトリ名を変更してください。