Java 在jsp中显示来自字节数组的图像
我使用html和jsp在netbeans中开发了一个web应用程序,我必须在索引中显示来自数据库的图像 类中有管理数据库的方法Java 在jsp中显示来自字节数组的图像,java,html,jsp,netbeans,Java,Html,Jsp,Netbeans,我使用html和jsp在netbeans中开发了一个web应用程序,我必须在索引中显示来自数据库的图像 类中有管理数据库的方法 public byte[] getImg(Connection connect, User user) throws SQLException { byte[] blobAsBytes = null; Statement statement = null; ResultSet rs = null; st
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);
%>
因此,有一种方法可以将图像显示为jsp页面中的字节数组?您的jsp页面已经在将HTML流化到客户端。每个请求只能返回一种响应类型。与其尝试将字节嵌入页面,您需要添加一个指向另一个URL的img标记,该URL提供类型为image/jpeg的新响应。您应该创建一个servlet或jsp,将字节[]写入响应,并在html页面中创建一个显示生成图像的img元素 以下是如何将图像写入响应: 下面是如何将图像从servlet获取到html页面:
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)