gpt4 book ai didi

java - 我无法从 Servlet (Java EE) 获取真实路径

转载 作者:行者123 更新时间:2023-11-28 22:43:52 24 4
gpt4 key购买 nike

当我想在 Java EE 中获取真实路径时,使用以下说明:

String rootPath = getServletConfig().getServletContext().getRealPath("/");
System.out.println(rootPath);

结果是:C:\Users\saad\Desktop\pds.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Metier\

通常,我必须得到这个结果:

C:\Users\saad\Desktop\pds\Metier\

有人能帮帮我吗?

最佳答案

这是一个很好的例子,说明为什么“相对于应用程序的文件系统路径”的概念在 servlet 中真的没有意义。将 servlet 部署到容器中时,无法保证它驻留在真实的文件系统位置。 servlet 容器可以选择直接从 .war 文件执行它而不展开它,或者它可以从根本不受传统文件系统支持的 URL 读取应用程序代码。

在您的情况下,返回的长路径正是 Eclipse 部署应用程序的位置。该路径在该上下文中是 100% 正确的,因为如果您查看该位置的文件系统,您会找到应用程序的副本,但显然不是您所期望的。

一般来说,不可能可移植地引用相对于您的应用程序的任何文件路径,因为该路径可能不存在。

关于java - 我无法从 Servlet (Java EE) 获取真实路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15605800/

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