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

标签 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;

        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/

相关文章:

jsp - JSP 中的日期通过 JSTL 从 XMLCalendar 转换为 util date

java - 如何将单个字段的数据获取到 SQLite 数据库的变量中?

php - 在 PHP 中获取实时时间和日期

html - 一些但不是所有的自定义 CSS 覆盖了 Bootstrap 4 设置

javascript - 如何更改 asp.net 中的 outerHTML 属性

java - 在 Spring MVC 中绑定(bind)列表映射

java - 水平放置圆形图像以显示用户个人资料图片

java - 我的 Log4J 级别在哪里设置?

java - Android listActivity onListItemClick 与 CheckBox

java - JSP if() 语句中的 HTML 不起作用