JSP クラス・ロードの設定
JavaServer Pages (JSP) クラスは、 JSP エンジンのクラス・ローダーまたは Web モジュールのクラス・ローダーのいずれかによってロードされるように構成できます。
デフォルトでは、 JSP クラスは、JSP エンジンのクラス・ローダーの固有のインスタンスによってロードされます。 JSP エンジンのクラス・ローダーを使用すると、JSP ソースまたはその依存関係の 1 つが変更された際に、JSP クラスの実行時での再ロードが可能になります。 これにより、必要な場合に、ほかのロード済み JSP クラスに影響を及ぼすことなく、 1 つの JSP クラスを再ロードできます。
- このセクションで後に示す表の <servlet-class> シナリオにより、JSP エンジン構成パラメーター useFullPackageNames が true に設定され、JSP ファイルが web.xml ファイル内にサーブレットとして構成されます。
- JSP エンジン構成パラメーター useFullPackageNames および disableJspRuntimeCompilation が両方とも true に設定されます。 この場合、JSP ファイルをサーブレットとして web.xml ファイル内に構成する必要はありません。
サーブレットとしての JSP ファイルの構成
JSP ファイルをサーブレットとして web.xml ファイル内に構成することができます。これを行うには、2 つの方法があります。 このセクションで後に示す表に、これらは説明されています。
- 再ロード機能 - JavaServer Pages ファイルのランタイム再ロードが必要な場合、 JavaServer Pages ファイルへの要求は、JSP エンジンによって処理されなければなりません。 このセクションで後に示す表の <servlet-class> シナリオは、ランタイム JSP ファイルの再 ロードを使用不可にします。一方、<jsp-file> シナリオは再ロードと互換性があります。
- クラス・ローダーの数の削減 - 変更された JSP ページのランタイム再ロードを必要とせず、クラス・ローダー・インスタンスの数を削減したい場合には、 以下の表の <servlet-class> シナリオを使用できます。 同様に、セクション 1 のシナリオ 2 は、 JSP ファイルをサーブレットとして構成する必要なく使用できます。
シナリオ | 例 | ランタイム再ロードと互換性があります | 複数のクラス・ローダーを使用しますか? | useFullPackageNames |
---|---|---|---|---|
<jsp-file> | <servlet> <servlet-name>jspOne</servlet-name> <jsp-file>jspOne.jsp</jsp-file> </servlet> |
はい | はい | true または false のいずれかが可能 |
<servlet-class> | <servlet> <servlet-name>jspTwo</servlet-name> <servlet-class>_ibmjsp.jspTwo</servlet-class> </servlet> |
いいえ | いいえ | true でなければなりません |
JSP バッチ・コンパイラー・ツールは、 JavaServer Pages ファイルをサーブレットとして構成するのに役立ちます。 useFullPackageNames が true である場合、JSP バッチ・コンパイラーは、 <servlet> および <servlet-mapping> エレメントを JSP ファイルご とに生成して、正常に変換およびコンパイルします。 これらのエレメントは、 generated_web.xml という名前の web.xml フラグメント・ファイルに書き込まれます。 このファイルは、JSP ファイル・バッチ・コンパイラーによって処理された Web モジュールのバイナリー WEB-INF ディレクトリーに置かれています (このディレクトリーは、デプロイされたアプリケーションの EAR ファイル内にあります)。 これらのエレメントのすべてまたは一部を web.xml ファイルに コピーして貼り付けると、JavaServer Pages ファイルをサーブレットとして構成できます。
構成リポジトリー・ディレクトリーの例は、次のようになります。{WAS_ROOT}/profiles/profilename/config/cells/cellname/applications/enterpriseappname/deployments/deployedname/webmodulename
構成リポジトリー・ディレクトリーの例は、次のようになります。profile_root/config/cells/cellName/applications/enterpriseAppName/deployments/deployedName/webModuleName
アプリケーションのバイナリー・ディレクトリーの例は、次のようになります。{WAS_ROOT}/profiles/profilename/installedApps/nodename/EnterpriseAppName/WebModuleName/
アプリケーションのバイナリー・ディレクトリーの例は、次のようになります。 profile_root/installedApps/nodeName/EnterpriseAppName/WebModuleName/
JSP バッチ・コンパイラーが、 事前デプロイされたアプリケーション上で実行された場合には、 web.xml ファイルは Web モジュールの WEB-INF ディレクトリー内にあります。