我有安装在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"
但是我宁愿知道是否还有其他方法来获取我的项目路径,而不是进行硬编码。
答案 0 :(得分:1)
您可以使用getServletContext().getRealPath("/");
获取与给定虚拟路径相对应的真实路径。 例如,如果path等于/index.html,则此方法将返回服务器文件系统上的绝对文件路径,该文件的格式为http://://index.html的请求将映射到该文件,该位置对应于ServletContext的上下文路径。
返回的实际路径将采用适合运行servlet容器的计算机和操作系统的形式,包括适当的路径分隔符。
仅当容器从包含其的JAR文件中解压缩了JAR文件的/ META-INF / resources目录中捆绑在应用程序的/ WEB-INF / lib目录中的资源时,才应考虑该资源。打开包装的位置必须返回。
如果servlet容器无法将给定的虚拟路径转换为真实路径,则此方法返回null。