如何在Spring MVC Web应用程序中获取项目基本路径?

时间:2018-07-16 13:37:44

标签: spring-mvc tomcat

我有安装在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"

但是我宁愿知道是否还有其他方法来获取我的项目路径,而不是进行硬编码。

1 个答案:

答案 0 :(得分:1)

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

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

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

仅当容器从包含其的JAR文件中解压缩了JAR文件的/ META-INF / resources目录中捆绑在应用程序的/ WEB-INF / lib目录中的资源时,才应考虑该资源。打开包装的位置必须返回。

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