JSP 类装入设置

您可以将 JavaServer Pages (JSP) 类配置为由 JSP 引擎的类装入器或由 Web 模块的类装入器装入。

缺省情况下,JSP 类由 JSP 引擎的类装入器的唯一实例装入。JSP 引擎的类装入器允许 JSP 类在运行时重新装入(当 JSP 源或它的其中一个依赖项发生修改时)。这将在必要时允许您重新装入单个 JSP 类,而不会影响任何其他已装入的 JSP 类。

在以下两种方案的任何一种方案中,JSP 类由 Web 模块的类装入器装入。
  1. JSP 引擎配置参数 useFullPackageNames 设置为 true,而 JSP 文件使用本主题后文的表中 <servlet-class> 方案配置为 web.xml 文件中的 Servlet。
  2. JSP 引擎配置参数 useFullPackageNames 和 disableJspRuntimeCompilation 都设置为 true。在这种情况下,不需要将 JSP 文件配置为 web.xml 文件中的 Servlet。

将 JSP 文件配置为 Servlet

可以将 JSP 文件配置为 web.xml 文件中的 Servlet。有两种方式可以执行此操作。在本节后文的表中描述了这两种方式。

将 JSP 文件配置为 Servlet 前,请考虑以下事项。
  1. 重新装入能力 - 如果需要 JavaServer Pages 文件运行时重新装入,那么 JavaServer Pages 文件的请求必须由 JSP 引擎处理。当 <jsp-file> 方案与重新装入兼容时,本节后文的表中 <servlet-class> 方案禁用运行时 JSP 文件重新装入。
  2. 减少类装入器数 - 如果不需要在运行时重新装入已修改的 JSP 页,且希望减少类装入器实例数,那么可以使用下表中的 <servlet-class> 方案。同样,可以使用第 1 节中的方案 2,而无需将 JSP 文件配置为 Servlet。
表 1. 示例:将 JSP 文件配置为 web.xml 文件中的 Servlet。. 将 JSP 文件配置为 Servlet
方案 示例 兼容运行时重新装入 是否使用多个类装入器? 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 文件配置为 Servlet。当 useFullPackageNames 为 true 时,JSP 批处理编译器为它成功翻译和编译的每个 JSP 文件生成 <servlet><servlet-mapping> 元素。这些元素写入命名为 generated_web.xmlweb.xml 片段文件,它位于 Web 模块的二进制 WEB-INF 目录中(此目录位于部署的应用程序的 EAR 文件中),该模块由 JSP 文件批处理编译器处理。您可以将部分或所有这些元素复制和粘贴到 web.xml 文件以将 JavaServer Pages 文件配置为 Servlet。

请记下应用程序服务器使用的 web.xml 的位置。特定于应用程序的配置是从应用程序二进制文件(应用程序的 ear 文件)或配置库中获取的。如果将应用程序部署到 WebSphere® Application Server,并且将标志“使用二进制配置”设置为 true,那么将在 Web 模块的二进制目录中(而不是在配置库中)查找 WEB-INF/web.xml 文件。这两个位置的示例如下所示:
  • [AIX Solaris HP-UX Linux Windows][z/OS]配置库目录的一个示例是 {WAS_ROOT}/profiles/profilename/config/cells/cellname/applications/enterpriseappname/deployments/deployedname/webmodulename
  • [IBM i]配置库目录的一个示例是 profile_root/config/cells/cellName/applications/enterpriseAppName/deployments/deployedName/webModuleName
  • [AIX Solaris HP-UX Linux Windows][z/OS]应用程序二进制文件目录的一个示例是:{WAS_ROOT}/profiles/profilename/installedApps/nodename/EnterpriseAppName/WebModuleName/
  • [IBM i]应用程序二进制文件目录的一个示例是:profile_root/installedApps/nodeName/EnterpriseAppName/WebModuleName/

如果在预部署的应用程序上执行了 JSP 批处理编译器,那么 web.xml 文件在 Web 模块的 WEB-INF 目录中。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_jspclassloading
文件名:cweb_jspclassloading.html