gpt4 book ai didi

java - 如何正确地将图像从 servlet 传递到 JSP

转载 作者:行者123 更新时间:2023-12-01 09:53:57 24 4
gpt4 key购买 nike

我已经在我的postgresql数据库中上传了一张图片,上传成功。现在我想在 JSP 中查看该图像,我能够将其导入数据库,但我不知道如何将其传递到 JSP 中以便它查看图像。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Connection connect;
String userName = null;
byte[] image = null;
String imageName = null;
try {
connect = DriverManager.getConnection(databaseUrl, databaseUsername, databasePassword);
PreparedStatement select = connect.prepareStatement("SELECT username,image,image_name FROM users WHERE username = ?;");
select.setString(1, "steve");
ResultSet selectSet = select.executeQuery();

while(selectSet.next()) {
userName = selectSet.getString(1);
image = selectSet.getBytes(2);
imageName = selectSet.getString(3);
}

request.setAttribute("username", userName);
response.setContentType(getServletContext().getMimeType(imageName));
response.setContentLength(image.length);
response.getOutputStream().write(image);


} catch (SQLException e) {
e.printStackTrace();
}


}

我尝试使用 requestDispatcher 将图像传递到 JSP

request.getRequestDispatcher("viewImage.jsp").include(request, response);

但我遇到了 IllegalStateException(getOutputStream() 已被调用)。

这是我的 JSP 代码

<c:out value='${requestScope.username }' />
<img src="${pageContext.request.contextPath}">
  1. 还有其他方法从 servlet 调用 JSP 来传递图像吗?
  2. 通过将内容类型设置为图像 MIME 类型,是否意味着“用户名”不会因为内容类型而显示?我该如何修复它?

我从早上起就一直在寻找这篇文章,但我不知道它是如何将图像传递到 JSP 中的 How to retrieve and display images from a database in a JSP page?

编辑:应用程序的目的是查看用户的个人资料(图像和文本信息)

最佳答案

您不需要将图像传递到 JSP。

  1. 首先,浏览器调用 JSP 页面的 URL 并呈现 img 元素。
  2. 然后浏览器使用图像的 src 属性的 URL 再次调用服务器。
  3. 这会调用您的 servlet(对吗?),而 servlet 只需要像您已经做的那样将图像字节流式传输回浏览器。

关于java - 如何正确地将图像从 servlet 传递到 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com