2014-09-25 165 views
0

在我的JSP/Servlet設置中,爲了顯示用戶配置文件圖像,我正在指導img標記,通過在src標記中指定servlet URL,然後返回從servlet響應的圖像來從servlet獲取圖像。如何在圖像源是servlet時顯示默認圖像?

Sevlet做下面的事情在接收到圖像請求,

  1. 它從數據庫中的圖像中BLOB格式
  2. byte []和
  3. 準備圖像
  4. 返回在圖像中response對象與適當的標題。

我的問題是,因爲註冊的頁面不具有圖片上傳選項,因此新用戶沒有自己的圖像數據庫,即讓BLOBNULL如何顯示所有這些用戶的默認圖像?

編輯 根據收到的意見,我只是想說明一點。我知道在數據庫中設置默認值(在創建用戶時)或在數據庫中存在NULL時返回默認圖像數組的解決方案。 我已經在使用後一種情況。通過這個問題,我只想討論關於任何其他可能的解決方案

+0

您是否曾嘗試在數據庫中爲「新用戶」創建和存儲默認圖像? – munyul 2014-09-25 07:10:19

+0

這聽起來很合邏輯,但我認爲他們應該是一些其他的解決方案,而不是加載數據庫大量的默認圖像。 – aProgrammer 2014-09-25 07:13:02

+0

你可以嘗試用幾種方法來做到這一點,例如你可以嘗試下載用戶定義的圖片,如果你的圖片爲null,你下載的是默認圖片;) – Fincio 2014-09-25 07:18:53

回答

1

一個選項可能是當用戶沒有圖像時返回HTTP錯誤404「未找到」。我覺得這很合理,因爲用戶確實沒有形象。

<img src="servletUrl" onerror="this.src='default.png'" width="150" height="150" /> 

這樣,這個servlet只將用戶圖像,並沒有做,如果任何特殊的邏輯:

public void doGet(HttpServletRequest request, HttpServletResponse response) { 
    response.sendError(HttpServletResponse.SC_NOT_FOUND); 
} 

然後在你的HTML可以使用onerror Event設置默認的圖像處理這種情況用戶沒有一個。

+0

謝謝@Tobias ..這正是我正在尋找的。在接受你的答案之前,再給你一個問題。可能會有人提出更好的解決方案。 – aProgrammer 2014-09-25 12:24:21

相關問題