gpt4 book ai didi

spring-mvc - 如何在 Spring mvc web 应用程序中获取项目基本路径?

转载 作者:行者123 更新时间:2023-11-28 22:16:05 25 4
gpt4 key购买 nike

我有部署在 tomcat 服务器上的 spring mvc web 应用程序。在那个项目中,我想在运行时创建文件夹和文件。目前,我可以使用 System.getProperty("catalina.base") 在服务器根目录中创建文件夹。但是当我在外部服务器中部署项目时,我无法在 tomcat 服务器的根级别创建文件夹,因为我没有权限。取而代之的是,我决定在以下目录中创建文件夹。

tomcat_dirctory/webapps/myproject_directory

所以我需要在运行时的 myproject_directory 中创建文件夹和文件。谁能告诉我那条路是什么。也许我可以按如下方式对其进行硬编码。

 System.getProperty("catalina.base") + File.separator + "webapps"+File.separator+"myproject_directory"

但是除了硬编码,我更想知道是否有任何替代方法来获取我的项目路径。

最佳答案

您可以使用 getServletContext().getRealPath("/");

获取给定虚拟路径对应的真实路径。例如,如果 path 等于/index.html,此方法将返回服务器文件系统上的绝对文件路径,http://://index.html 形式的请求将映射到该路径,其中对应于此 ServletContext 的上下文路径。

返回的真实路径将采用适合运行 servlet 容器的计算机和操作系统的形式,包括正确的路径分隔符。

仅当容器已将它们从包含它们的 JAR 文件中解压缩时,才必须考虑捆绑在应用程序的/WEB-INF/lib 目录中的 JAR 文件的/META-INF/resources 目录中的资源,在这种情况下,必须返回解压位置。

如果 servlet 容器无法将给定的虚拟路径转换为真实路径,则此方法返回 null。

关于spring-mvc - 如何在 Spring mvc web 应用程序中获取项目基本路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51363198/

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