2011-06-14 24 views
1

我有這種用例,我在其中的servlet getPost方法中生成了一個圖像。 我保存在/tmp/xyz.jpg本地文件系統中的圖像,然後做一些像保存與應用程序根相關的資源(圖像等),並將其用於Servlet/Jsp中

response.setContentType("text/html"); 
PrintWriter out = response.getWriter(); 
out.println("<html>"); 
out.println("<title>Example</title>"); 
out.println("<body><h2>Graph is :</h2>"); 
out.println("<img src='/tmp/TimeSeriesChart.jpg'></body>"); 
out.println("</html>"); 

自然的圖像沒有得到顯示,當我打的URL(調用servlet的)。

我認爲的原因是img src是針對應用程序根目錄而非文件系統根目錄進行計算的。

所以總結一下,我希望能夠將圖像保存在相對於Application Root的適當位置,訪問圖像並顯示它。

Q1。如何在servlet中找到應用程序根目錄。這樣我就可以正確保存圖像。 Q2302。建議如何將內容設置爲圖像,然後將其作爲字節讀取並顯示: http://www.exampledepot.com/egs/javax.servlet/GetImage.html

+0

同時我嘗試第二種方式,如果servlet上下文將幫助我或不:) :) – 2011-06-14 07:55:48

回答

2

Ans1:ServletContext.getRealPath()將爲您提供應用程序根目錄位置。

ANS2:沒有錯在具有小服務程序,但集裝箱這樣做將處理以下情況下,以及:

  1. 如果-Modified-Since的,發送SC_NOT_MODIFIED響應
  2. 緩存到容器中的圖像數據隨後的請求。
+0

謝謝我已經嘗試了第二種方式(轉換爲字節並將內容類型設置爲圖像),它的工作方式就像一個魅力。我會嘗試你的 – 2011-06-14 08:59:23

+0

你的工作,這是最好的方法:)。我使用了 'String path = this.getServletContext()。getRealPath(「」);'。 'fileName = path +「TimeSeriesChart.jpg」'然後使用'' **請勿使用。 src會計算每個相對於根的路徑,所以只需要文件名 – 2011-06-14 09:25:44

相關問題