2014-10-09 235 views
3

我想要做的是讀取html文件的內容。點擊鏈接時,應該閱讀html文件的內容,並且該內容將在我的代碼中被使用。絕對路徑的相對URL

我的嘗試:

我試過相對路徑轉換爲絕對路徑

String absoluteFilePath = servletContext.getRealPath("/html/en/TestPage.html"); 

,這工作正常的WebLogic窗口 dev的機器,但是當這種代碼部署到webloic on Unix機器上面的代碼返回null。我挖谷歌,我發現如果servlet容器不能 虛擬路徑轉換成以任何理由(一個真正的通路時,正在提供從該 內容如

「的ServletContext.getRealPath返回null。戰爭檔案)「。

你能否建議最好的方式將相對路徑轉換爲絕對路徑(使用上下文路徑)。代碼應該在Windows和Unix平臺上工作,或者其他方式讀取html文件,而不是從絕對路徑讀取,如果我可以從相對路徑讀取文件文件。

+0

什麼服務器您使用的?你能告訴我們servletcontext的全限定類名嗎? – 2014-10-09 08:45:50

+2

似乎重複http://stackoverflow.com/a/12160863/2078908 – ursa 2014-10-09 09:05:50

+1

可能重複[什麼是「/」在方法'servletcontext.getRealPath'中的意思](http://stackoverflow.com/questions/12160639/ what-does-mean-in-the-method-servletcontext-getrealpath) – 2014-10-09 09:55:39

回答

1

你只能使用getRealPath(...)如果戰爭是爆炸,但你總是可以閱讀下的servlet上下文根文件與getResource(...)getResourceAsStream(...)。在你的榜樣,它會變成:

InputStream is = servletContext.getResourceAsStream("/html/en/TestPage.html"); 

然後你就可以安全地讀取它...