2011-06-21 54 views
0

使用tomcat 6,我在www/templates/templatefile.html裏創建了一個模板如何從servlet到達www目錄中的文件?

我該如何從servlet訪問它?我想讀取html文件並解析它。

我嘗試使用request.getRealPath(request.getServletPath()) 獲取真實路徑,然後從那裏轉到模板目錄,但由於某些原因它仍無法找到該文件。

+0

該文件是由Tomcat或(我假設)Apache託管的嗎? – Mikaveli

回答

3

假設www是在公共網頁內容的根文件夾,那麼你可以使用ServletContext#getRealPath()一個相對的網絡路徑轉換爲絕對磁盤文件系統的路徑如下:

String relativeWebPath = "/www/templates/templatefile.html"; 
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath); 
File file = new File(absoluteDiskPath); 
InputStream input = new FileInputStream(file); 
// ... 

注意,此次榮獲」 t在WAR不擴展時工作(Tomcat默認爲trim,但可以配置爲不這樣做)。如果你最終想要的是InputStream,那麼你寧願使用ServletContext#getResourceAsStream()代替。

String relativeWebPath = "/www/templates/templatefile.html"; 
InputStream input = getServletContext().getResourceAsStream(relativeWebPath); 
// ... 
+0

謝謝!需要從相對路徑中刪除/ www,因爲/ www實際上是根/ – ufk

相關問題