2017-07-15 39 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