JSP 类装入设置
您可以将 JavaServer Pages (JSP) 类配置为由 JSP 引擎的类装入器或由 Web 模块的类装入器装入。
缺省情况下,JSP 类由 JSP 引擎的类装入器的唯一实例装入。 JSP 引擎的类装入器允许 JSP 类在运行时重新装入(当 JSP 源或它的其中一个依赖项发生修改时)。 这将在必要时允许您重新装入单个 JSP 类,而不会影响任何其他已装入的 JSP 类。
- JSP 引擎配置参数useFullPackageNames设置为 true,并且 JSP 文件在web.xml使用文件<servlet 类>本主题后面的表格中介绍了此场景。
- JSP 引擎配置参数 useFullPackageNames 和 disableJspRuntimeCompilation 都设置为 true。 在这种情况下,不需要将 JSP 文件配置为 web.xml 文件中的 Servlet。
将 JSP 文件配置为 Servlet
可以将 JSP 文件配置为 web.xml 文件中的 Servlet。 有两种方法可以解决这一问题。 在本节后文的表中描述了这两种方式。
- 重新装入能力 - 如果需要 JavaServer Pages 文件运行时重新装入,那么 JavaServer Pages 文件的请求必须由 JSP 引擎处理。 这<servlet 类>本节后面表格中的场景禁用运行时 JSP 文件重新加载,而<jsp 文件>场景与重新加载兼容。
- 减少类加载器的数量——如果您不需要运行时重新加载修改后的 JSP 页面,并且想要减少类加载器实例的数量,那么您可以使用<servlet 类>下表中的情况。 同样,可以使用第 1 节中的方案 2,而无需将 JSP 文件配置为 Servlet。
| 方案分析 | 示例 | 兼容运行时重新装入 | 是否使用多个类装入器? | useFullPackageNames |
|---|---|---|---|---|
| <jsp 文件> | <servlet> <servlet-name>jspOne</servlet-name> <jsp-file>jspOne .jsp</jsp 文件> </servlet> |
是 | 是 | 可以为 true 或 false |
| <servlet 类> | <servlet> <servlet-name>jspTwo</servlet-name> <servlet-class>_ibmjsp.jspTwo</servlet-class> </servlet> |
否 | 否 | 必须为 true |
JSP 批处理编译器工具帮助您将 JavaServer Pages 文件配置为 Servlet。 什么时候useFullPackageNames为真,JSP 批处理编译器将生成<servlet>和<servlet 映射>它成功翻译和编译每个 JSP 文件的元素。 这些元素写入命名为 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
配置存储库目录的一个示例是配置文件根/config/cells/cellName/applications/enterpriseAppName/deployments/deployedName/webModuleName
应用程序二进制目录的一个示例是:{WAS_ROOT}/profiles/profilename/installedApps/nodename/EnterpriseAppName/WebModuleName/
应用程序二进制目录的一个示例是:配置文件根/installedApps/nodeName/EnterpriseAppName/WebModuleName/
如果在预部署的应用程序上执行了 JSP 批处理编译器,那么 web.xml 文件在 Web 模块的 WEB-INF 目录中。