0

我正在尝试使用 java 从 mysql 数据库中检索一些 blob 图像。现在,问题是我一次只能获得一张图像,其他图像没有显示。

下面是我的jsp代码,我正在这样做(仅用于演示目的):

   <?xml version="1.0" encoding="UTF-8" ?>
   <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"   %>
   <%@ page language="java" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.io.*" %> 
     <%@ page import="java.util.*"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
       <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
    <title>MindDotEditor posted Data</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="robots" content="noindex, nofollow" />
    <link href="../sample.css" rel="stylesheet" type="text/css" />
    <link rel="shortcut icon" href="../fckeditor.gif" type="image/x-icon" />
     </head>
     <body>

       <%
String url = "jdbc:mysql://localhost:3306/grandsho_register";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;


try {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    con = DriverManager.getConnection(url,"root","root");
    stmt = con.createStatement();
    rs = stmt.executeQuery("SELECT image FROM user ");
    int i = 1;
    if(rs.next()) {
        Blob len1 = rs.getBlob("image");
        int len = (int)len1.length();
        byte[] b = new byte[len];
        InputStream readImg = rs.getBinaryStream(1);
        int index = readImg.read(b, 0, len);
        System.out.println("index" +index);
        stmt.close();
        response.reset();
        response.setContentType("image/jpg");
        response.getOutputStream().write(b,0,len);
        response.getOutputStream().flush();
    }
} catch(Exception ex) {
    out.println(ex);
} finally {
    rs.close();
    stmt.close();
    con.close();
}
       %>

    <br>
    <center><input type="button" value="Print" onclick="window.print();return false;"   />        </center>
    </body>
  </html>    

谁能建议我如何在 jsp 页面上显示多个图像?

4

1 回答 1

0

而不是if(rs.next()) {}你必须使用while(rs.next()){}

于 2014-10-29T13:52:40.210 回答