首先,我阅读了很多有关此事的帖子,但我无法让这个工作。 我是jsp和web应用程序的新手。我想做的就是显示一个简单的图像。 我在servlet中有这个代码:
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}"/>
我的网络应用中的文件夹是这样的: folders image
最后,当我的页面加载时,这就是我得到的: image does not display
我想知道这里的错误是什么?为什么它如此复杂(也许它不是,但我真的尝试了很多方法而不是它们的工作)来显示一个简单的图像?
提前感谢您的帮助!
PS:文件夹是正确的,它在println()
中打印没有问题答案 0 :(得分:0)
getRealPath()为您提供文件系统中的真实路径。
当您在网络中引用任何资源(图像,js,css)时,它应该可以通过网络访问。
如果您在浏览器中点击“查看源代码”,您可能会在标记中看到fil系统路径:
<img alt="logo" src="C:/whatever-your-path-is/image.jpg"/>
但你需要的是资源的url路径(完整或相对)。
请改为尝试:
sesion.setAttribute("image", "resources/images/image.jpg");