在jsp中获取破碎的图像用于使用servlet检索的字节数组图像数据"图像无法打开包含错误"

时间:2016-06-16 09:46:18

标签: postgresql jsp servlets

我的imageDispaly.jsp有

<img src="/Elvisxu/imageDisplayProcess.do?id=<%=rs.getString(1)" width="75" height="60"/>

在jsp中调用servlet及其in循环。

我的servlet类代码如下

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String id = request.getParameter("id");

    String imgLen="";
    try {
    DBManager dm=new DBManager();
    dm.GetConnection();
    String sql="select snap from newapp where applid="+id;
    ResultSet rs=dm.select(sql);
    while (rs.next ())
    {   
        imgLen = rs.getString(1);
        System.out.println(imgLen.length());
        int len = imgLen.length();
        byte [] rb = new byte[len];
        InputStream readImg = rs.getBinaryStream(1);
        System.out.println("readImg "+readImg);
        int index=readImg.read(rb, 0, len);
        System.out.println("index "+index);
        response.reset();
          response.setContentType("image/png");
          response.getOutputStream().write(rb,0,len);
          response.getOutputStream().flush();

    }
    }catch (Exception e) {
         System.out.println(e);
    }

我在谷歌搜索但我没有任何理由这样做。

我使用postgresql db从snap列获取数据

  

[B @ 302a7504

任何回应都很明显

1 个答案:

答案 0 :(得分:0)

这个问题是因为“bytea”列中的数据,并且在将数据保存到newapp表中的snap列(bytea)时使用预准备语句解决了这个问题。