2012-09-10 101 views
0

如何获取struts2 web应用程序的当前工作目录?如何获取我部署的Web应用程序的目录?

String currentDir = System.getProperty("user.dir"); 
String currentDir = new File(".").getAbsolutePath(); 

return /usr/share/tomcat

我需要Web应用程序的路径,所以我可以从战争中读取文件。

+0

相关:[?在哪里放置在一个JSP/Servlet的Web应用程序配置属性文件( http://stackoverflow.com/questions/2161054/where-to-place-configuration-properties-files-in-a-jsp-servlet-web-application) – BalusC

回答

0

你需要得到ServletContext的真实路径:ServletContext.getRealPath(String)

这就是说,你为什么要读一个文件,该文件是在一个战争文件,你为什么要这样来做?

不想把文件放在classpath和使用getResourceAsStream

+0

我想获取当前目录来打开db.properties文件。但是我发现了另一个问题:可以在Web浏览器中查看db.properties文件和db密码的内容。如何限制对db.properties文件的访问?如何使用getResourceAsStream获取db.properties? – EkaYuda

+0

@EkaYuda直接访问属性文件的唯一方法是,如果它位于可公开访问的位置(部署了某些东西,但不在“WEB-INF”下)并且未被过滤。把一个属性文件放在一个可以直接访问的地方真的很奇怪。要使用getResourceAsStream获取文件,请遵循全世界关于如何使用getResourceAsStream的每个教程。 –

+0

所以,我需要把db.properties放在WEB-INF中? – EkaYuda