2012-09-10 96 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