2017-07-15 89 views
-1

首先,我閱讀了大量關於此的帖子,但是我無法設法使其工作。 我對jsp和web應用程序非常陌生。我想要做的是顯示一個簡單的圖像。 我有這樣的代碼在servlet:在jsp中顯示圖像時出現錯誤

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    HttpSession sesion = request.getSession(); 
    String filePath = getServletContext().getRealPath("image.jpg"); 
    System.out.println(filePath); 
    sesion.setAttribute("image", filePath); 
    response.sendRedirect("products.jsp"); 
} 

而這種代碼在jsp:

<img alt="logo" src="${image}"/> 

而在我的web應用程序的文件夾,這個是: folders image

最後,當我的網頁加載,這是我得到: image does not display

我不知道是什麼這裏是錯誤嗎?爲什麼它是如此複雜(也許不是,但我真的嘗試了很多方法,而不是它們的工作)來顯示一個簡單的圖像?

在此先感謝您的幫助!

PS:該文件夾是正確的,它打印沒有問題中的println()

+0

使用Firebug在Chrome中,用鼠標右鍵單擊圖片和檢查什麼的'src'屬性的值。 – tima

回答

0

getRealPath()讓你在文件系統中的真實路徑。

當您引用網絡中的任何資源(圖像,js,css)時,它應該可以通過網頁訪問。

如果您在瀏覽器中單擊「查看源代碼」,你可能會看到在標籤費爾系統路徑:

<img alt="logo" src="C:/whatever-your-path-is/image.jpg"/> 

但你需要的是URL路徑的(完整或相對)資源。

試試這個:在Firefox或開發者工具

sesion.setAttribute("image", "resources/images/image.jpg"); 
+0

我現在覺得很愚蠢。謝謝,這是答案。 –

+0

哈哈,別擔心,它也發生在最好的家庭。我曾經有一個小時想知道爲什麼「S」== myVar(其值是「S」)是錯誤的。樂意效勞 – gmanjon