我创建了一个xml格式的网站设置文件,该文件的内容指定了网站标题,网址,元描述,管理员电子邮件等内容。
在我的Java代码中,我只是将文件定义如下:
private static final String webSettingFileName = "WebSettings.xml";
public void saveSetting()
{
File settingFile = new File(webSettingFileName);
// try-catch block to write the XML file omitted
}
在部署war文件后,我发现Web Setting xml文件已写入Tomcat bin文件夹,但是,我想将该文件写入Tomcat中webapps的ROOT文件夹中。所以我想知道如何在我的代码中指定文件路径。感谢
修改
因为Jarrod Roberson给了我一个红色-1的重复问题。我不同意他,因为我在发帖之前检查了这个帖子。我尝试了that post here中建议的方法,但它对我不起作用,因为我需要将Web设置文件永久保存在同一位置,无论Tomcat重启多少次(所以tomcat / webapps服务于我的目的) !)。该文件用于保存网站设置。另外,ServletContext似乎不适用于我用于webapp的Java 1.8。
编辑2:
这就是我最终使它发挥作用的方式:
private final static File catalinaBase = new File(System.getProperty("catalina.base")).getAbsoluteFile();
private static final String webSettingFileName = "WebSetting.xml";
private final static File file = new File(catalinaBase, "webapps/" + webSettingFileName);
答案 0 :(得分:1)
您可以使用方法ServletContext.getRealPath("/")
来检索当前webapp的绝对文件系统路径,例如:
File settingFile = new File(getServletContext().getRealPath("/"), webSettingFileName);
请注意,这仅适用于展开(解压缩)的war文件。