2011-07-13 61 views
0

我已經使用下面的代碼在臨時位置創建一個文件,並在該位置保存圖像,當加載此頁面時,我總是看到一個紅色十字「如果舊圖像被刪除或始終顯示緩存的圖像不是最新的圖像「。使用servlet加載的圖像總是顯示一個紅色十字

String file_suffix=df.format(new Date()); 
      File file= new File("/home/martini/Apache/tomcat/apache-tomcat-5.5.27/webapps/dashboard/tmp_imgs/tmp"+file_suffix +".jpeg"); 
      if(!(file.exists())){ 
       file.createNewFile(); 
      } 
      p_resp.setContentType("image/jpeg"); 
       chart = u.genarateLineChart(m_martiniInstance); 
       ChartUtilities.saveChartAsJPEG(file, chart, 625, 800); 

       HTMLHelper.writeHTMLHead(m_out); 
       m_out.println("<body bgcolor=\"#B4A383\"> " 
          + " <center> " 
          + " <img src=\"/dashboard/_imgs/sungard_martini.png\" alt=\"SunGard Martini\" border=\"0\" /> " 
          + " <p><br><br></p>"); 
        m_out.println(
          " <div align=center>" 
          + " <img src=\"/dashboard/tmp_imgs/tmp" + file_suffix + ".jpeg\" border=\"0\" /> " 
          +"</div>" 
          + " <p><br><br></p>"); 

我想對於每一次的圖像中創建一個新的文件和臨時文件的臨時文件,不論以前的圖像加載新的形象存在。 是否有任何方法來實現這一點,因爲當我看到一個紅十字會或舊文件我刷新頁面,然後我看到正在加載的新圖像。

感謝,

巴維亞

+1

你能找到圖片背後沒有隱含的多任務處理你在你的文件系統/ FTP?相對的'src'確實是正確的路徑(你的webapp /相應的servlet位於何處)? – Jacob

+0

我是否正確地假設你這樣做是爲了確保每次頁面重新加載時都會得到一個新文件? – fvu

+0

+1,也許你需要提供絕對的uri而不是相對的。另外,請考慮將擴展名更改爲JPG而不是JPEG。 –

回答

0

的另一種方式解決我猜測的是你的目標,即每次重新加載時保證新的圖形,可能是以下方法:

  1. 創建一個處理(url-pattern)/ dashboard/tmp_imgs/tmp/*(注意*)的servlet。
  2. 讓您現在的代碼像現在一樣生成虛擬圖像網址。確切的文件名並不重要,只是總是讓瀏覽器重新加載它。

圖像的servlet應該或多或少像

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
    response.setContentType("image/jpeg"); 
    PrintWriter out = response.getWriter(); 
    chart = u.genarateLineChart(m_martiniInstance); 
    ChartUtilities.writeChartAsJPEG(out, chart, 625, 800); 
    out.close(); 
} 

不是100%肯定的writeChartAsJPEG調用的參數....

當然,與所提出的url-pattern該servlet將被調用來處理/dashboard/tmp_imgs/tmp/中的所有內容,所以如果你使用其他物理文件的路徑,你應該改變它(在web.xml和調用代碼中)到獨特的東西。它不需要現有文件的支持。

優點?

  • 每個servlet處理1級的任務,你的背部
  • 沒有以往任何時候都寫入磁盤,減少混亂和改進的高性能文件
相關問題