gpt4 book ai didi

java - 在jsp中显示字节数组中的图像

转载 作者:行者123 更新时间:2023-12-02 05:40:16 25 4
gpt4 key购买 nike

我使用 html 和 jsp 在 netbeans 中开发了一个 Web 应用程序,并且我必须在索引中显示来自数据库的图像。

类中有管理数据库的方法

public byte[] getImg(Connection connect, User user) throws SQLException {
byte[] blobAsBytes = null;

Statement statement = null;
ResultSet rs = null;

statement = connect.createStatement();
rs = statement.executeQuery("select * from user");
while (rs.next()) {
if (rs.getString("nickName").equals(user.getNickName())) {

Blob blob = rs.getBlob("img");
int blobLength = (int) blob.length();
blobAsBytes = blob.getBytes(1, blobLength);


blob.free();
}
}
return blobAsBytes;
}

然后我尝试在jsp页面中使用它。

 <jsp:useBean id="database" scope="session" type="Datos.ControlDatos"/>
<jsp:useBean id="access" scope="session" type="Datos.DataAccess"/>

<%
byte[] imgData = database.getImg(access.createConnection(),user);
response.setContentType("image/jpeg");
response.getOutputStream().write(imgData);

%>

问题是我遇到了这个异常:

org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

那么有没有一种方法可以在jsp页面中将图像显示为字节数组?

最佳答案

您的 JSP 页面已经将 HTML 流式传输到客户端。每个请求只能返回一种响应类型。您不需要尝试将字节嵌入到页面中,而是需要添加一个指向另一个 URL 的 img 标签,该 URL 提供 image/jpeg 类型的新响应。

关于java - 在jsp中显示字节数组中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24577092/

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