JSP 类装入设置
您可以将 JavaServer Pages (JSP) 类配置为由 JSP 引擎的类装入器或由 Web 模块的类装入器装入。
缺省情况下,JSP 类由 JSP 引擎的类装入器的唯一实例装入。 JSP 引擎的类装入器允许 JSP 类在运行时重新装入(当 JSP 源或它的其中一个依赖项发生修改时)。 这将在必要时允许您重新装入单个 JSP 类,而不会影响任何其他已装入的 JSP 类。
- JSP 引擎配置参数 useFullPackageNames 设置为 true,并在 web.xml 文件中使用本主题后面表格中的 <servlet-class> 方案将 JSP 文件配置为 servlet。
- JSP 引擎配置参数 useFullPackageNames 和 disableJspRuntimeCompilation 都设置为 true。 在这种情况下,不需要将 JSP 文件配置为 web.xml 文件中的 Servlet。
将 JSP 文件配置为 Servlet
可以将 JSP 文件配置为 web.xml 文件中的 Servlet。 有两种方法可以解决这一问题。 在本节后文的表中描述了这两种方式。
- 重新装入能力 - 如果需要 JavaServer Pages 文件运行时重新装入,那么 JavaServer Pages 文件的请求必须由 JSP 引擎处理。 此部分后面的表中的 <servlet-class> 方案将禁用运行时 JSP 文件重新装入,而 <jsp-file> 方案与重新装入兼容。
- 减少类装入器的数量-如果不需要对已修改的 JSP 页面进行运行时重新装入,并且要减少类装入器实例的数量,那么可以使用下表中的 <servlet-class> 方案。 同样,可以使用第 1 节中的方案 2,而无需将 JSP 文件配置为 Servlet。
| 方案分析 | 示例 | 兼容运行时重新装入 | 是否使用多个类装入器? | useFullPackageNames |
|---|---|---|---|---|
| <jsp-file> | <servlet> <servlet-name>jspOne</servlet-name> <jsp-file>jspOne.jsp</jsp-file> </servlet> |
是 | 是 | 可以为 true 或 false |
| <服务等级 | <servlet> <servlet-name>jspTwo</servlet-name> <servlet-class>_ibmjsp.jspTwo</servlet-class> </servlet> |
否 | 否 | 必须为 true |
JSP 批处理编译器工具帮助您将 JavaServer Pages 文件配置为 Servlet。 useFullPackageNames 为真时,JSP 批量编译器会为成功翻译和编译的每个 JSP 文件生成 <servlet> 和 <servlet 映射> 元素。 这些元素写入命名为 generated_web.xml 的 web.xml 片段文件,它位于 Web 模块的二进制 WEB-INF 目录中(此目录位于部署的应用程序的 EAR 文件中),该模块由 JSP 文件批处理编译器处理。 您可以将部分或所有这些元素复制和粘贴到 web.xml 文件以将 JavaServer Pages 文件配置为 Servlet。
配置库目录的示例为 {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 目录中。