使用tomcat 6,我在www/templates/templatefile.html裏創建了一個模板如何從servlet到達www目錄中的文件?
我該如何從servlet訪問它?我想讀取html文件並解析它。
我嘗試使用request.getRealPath(request.getServletPath())
獲取真實路徑,然後從那裏轉到模板目錄,但由於某些原因它仍無法找到該文件。
使用tomcat 6,我在www/templates/templatefile.html裏創建了一個模板如何從servlet到達www目錄中的文件?
我該如何從servlet訪問它?我想讀取html文件並解析它。
我嘗試使用request.getRealPath(request.getServletPath())
獲取真實路徑,然後從那裏轉到模板目錄,但由於某些原因它仍無法找到該文件。
假設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);
// ...
謝謝!需要從相對路徑中刪除/ www,因爲/ www實際上是根/ – ufk
該文件是由Tomcat或(我假設)Apache託管的嗎? – Mikaveli