gpt4 book ai didi

tomcat - Tomcat的extraResourcePaths和别名访问外部目录的区别

转载 作者:行者123 更新时间:2023-11-28 21:51:10 26 4
gpt4 key购买 nike

简单的问题:在Tomcat7中,使用extraResourcePaths和别名访问应用程序外部的目录有什么区别?

我可以使用这两个 server.xml 片段中的任何一个,它们似乎都有效。两者似乎都成功加载了此 URL:http://localhost/app/images/box.jpg。使用一个比另一个有优势吗?

<Context docBase="Eclipse_Project" path="/app"
reloadable="true" source="org.eclipse.jst.j2ee.server:Eclipse_Project"
aliases="/images=D:\path\to\images"/>

<Context docBase="Eclipse_Project" path="/app"
reloadable="true" source="org.eclipse.jst.j2ee.server:Eclipse_Project">
<Resources className="org.apache.naming.resources.VirtualDirContext"
extraResourcePaths="/images=D:\path\to\images"/>
</Context>

最佳答案

这是使用多种不同方式提取不属于 WAR 或展开目录的资源的结果。坦率地说,这是一个早该清理的烂摊子。为 Servlet 3.1(即 Tomcat 8)提议的“覆盖”(或它最终被称为的任何东西)功能促使进行了重大清理。当前的所有实现都将统一为一个实现。虽然它并不漂亮,但需要一段时间才能完成。

别名被视为 Web 应用程序资源的外部资源。 DirContext 在检查其内部资源之前检查别名。因此,当您请求真实路径时,您会得到原始路径。

如果您使用 extraResourcePaths,它们将被视为 Web 应用程序资源的一部分。看起来 Eclipse 已触发将应用程序资源复制到工作目录。这通常是为了避免文件锁定。由于 extraResourcePaths 被视为 webapp 的一部分,它们也被复制并且 getRealPath() 报告复制的位置,因为这是 Tomcat 提供资源的地方。

关于tomcat - Tomcat的extraResourcePaths和别名访问外部目录的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11138701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com