Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jsp中显示来自字节数组的图像_Java_Html_Jsp_Netbeans - Fatal编程技术网

Java 在jsp中显示来自字节数组的图像

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

我使用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);            

         %>

因此,有一种方法可以将图像显示为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)