该
src的HTML
<img>元素应该只是指向一个URL。URL是一个网址,就像您在浏览器地址栏中输入的网址一样。可以通过以下方式将Servlet映射到某些URL模式
web.xml:当您调用与Servlet映射匹配的URL时,将调用Servlet。
您已将servlet映射到的URL模式
/Photos。输入如下网址
http:// localhost:8080 / YourContextPath
/照片
在浏览器的地址栏中应该显示图像。因此,基本上,假设JSP在相同的上下文路径中运行,则应该这样做:
<img src="Photos" />
或者,当您要使其相对于域根目录时,则需要动态包含上下文路径:
<img src="${pageContext.request.contextPath}/Photos" />就是说,您的servlet中存在一些问题。您尚未设置内容类型标头。这样,浏览器将不知道如何处理HTTP响应。直接在地址栏中输入其URL时,它将显示“
另存为” 弹出窗口,而在中调用它时则不显示 任何 内容
<img>。如果是JPG图片,请 在 致电 之前
添加以下行
response.getOutputStream()。
response.setContentType("image/jpeg");这样,浏览器就会知道这是JPG图像,并会这样显示。另请参阅链接的博客,以获取设置标题的正确方法。
另一个问题是您正在呼叫
request.getSession(false),
null如果没有会话,它可能会返回。但是您不会在下一行进行检查!所以要么使用
HttpSession session = request.getSession();
使其永远不会
null,或添加一个
if (session == null) { // Display some default image or return a 404 instead. return;}您想对
userId和做同样的事情
photoStream。如果不存在,则显示默认图像或返回404。



