|
教程:了解 JSP 中的 TLD 高速缓存的新特性
TLD 高速缓存和众所周知的标记库位置
作为 JSP 规范中说明的标准 JSP“众所周知的 URI”功能的扩展,OC4J JSP 容器支持使用一个或多个目录(称为众所周知的标记库位置),您可以将标记库 JAR 文件放在其中,以便由多个 Web 应用程序共享。
从 OC4J 9.0.4 实施开始,还为 TLD 文件提供了持续高速缓存特性 — 为任意众所周知的标记库位置中的 TLD 文件提供全局高速缓存,以及为任意使用 TLD 高速缓存的应用程序提供应用程序级高速缓存。
在此我们将特别讨论以下内容: 启用/禁用 TLD 高速缓存的机制 要注意的重要事项
启用/禁用 TLD 高速缓存的机制
让我们详细了解一下如何能够在 OC4J 9.0.4 中启用或禁用 TLD 高速缓存: 启用 TLD 高速缓存 禁用 TLD 高速缓存
启用 TLD 高速缓存
通过 <orion-web-app> 元素的 jsp-cache-tlds 属性来启用和禁用 TLD 高速缓存 — 在全局级通过 global-web-application.xml 文件中的这个属性,或在应用程序级通过应用程序 orion-web.xml 文件中的这个属性。
缺省情况下,通过 global-web-application.xml 中的缺省设置 jsp-cache-tlds="true" 在全局级启用 TLD 高速缓存。这也是各个应用程序的 orion-web.xml 文件中的缺省设置。
如果启用了 TLD 高速缓存,那么您就可以在 global-web-application.xml 中的 <orion-web-app> 元素的 jsp-taglib-locations 属性中使用一个用分号分隔的目录路径列表来指定一个或多个众所周知的标记库位置。有关这个属性的其他信息,请参见“JSP 的 OC4J 配置参数”。
禁用 TLD 高速缓存
如上所述,缺省情况下,通过 global-web-application.xml 中的缺省设置 jsp-cache-tlds="true" 在全局级启用 TLD 高速缓存。这也是各个应用程序的 orion-web.xml 文件中的缺省设置,但您可以使用 orion-web.xml 中的一个设置 jsp-cache-tlds="false" 来为任意特定的应用程序禁用 TLD 高速缓存。这将覆盖全局设置。
或者,您可以利用 global-web-application.xml 中的一个“false”设置在全局级禁用 TLD 高速缓存,然后利用 orion-web.xml 中的一个“true”设置来选择性地为任意特定应用程序启用 TLD 高速缓存。
如果禁用了 TLD 高速缓存,那么利用引入 TLD 高速缓存特性之前已有的功能,可以将众所周知标记库位置限制在单个目录中。在这种情况下,众所周知的位置由 well_known_taglib_loc JSP 配置参数确定。(有关此参数的其他信息,请参见“JSP 配置参数”。)
在 Oracle 应用服务器环境中,缺省的众所周知位置是 ORACLE_HOME/j2ee/home/jsp/lib/taglib(假设定义了 ORACLE_HOME)。
要注意的重要事项
-
缺省情况下,orion-web.xml 从 global-web-application.xml 集成其 jsp-cache-tlds 设置。
- 仅在
global-web-application.xml 中使用 jsp-taglib-locations 属性,在 orion-web.xml 中不使用。
-
对于要选择众所周知的单个或多个位置中的文件的应用程序而言,必须将 jsp-taglib-locations 中指定的单个或多个目录或者 well_known_taglib_loc 中指定的目录添加到配置文件目录(在 OC4J 独立版中缺省为 j2ee/home/config)下的 OC4J 全局 application.xml 文件中的 <library> 元素的路径属性设置中。有关 application.xml 的信息,请参见 Oracle Application Server Containers for J2EE 用户指南。
- 如果在众所周知的位置和应用程序的 /WEB-INF 目录下都存在一个 TLD 文件,那么将优先使用 /WEB-INF 下的文件。
- 如果在 /WEB-INF 目录下和 /WEB-INF/lib 目录中的 JAR 文件中都存在拥有相同 URI 值的 TLD 文件,那么将不能确定使用哪个文件。请避免这种情况。
|