请教一个关于可能缓冲造成输出不正确的问题。
我写了个Servlet来读数据库中的图片进行输出,代码如下
private static final String CONTENT_TYPE = "image/jpeg;charset=GB2312";
private String cmd;
private PreparedStatement sql;
private ResultSet rs;
private InputStream in;
sql=con.prepareStatement(cmd);
rs = sql.executeQuery();
rs.next();
in = rs.getBinaryStream("tp");
response.reset();
response.setContentType("image/jpeg");
byte[] buffer = new byte[4096];
int size;
size = in.read(buffer);
while (size != -1)
{
response.getOutputStream().write(buffer, 0, size);
size = in.read(buffer);
}
in.close();
response.getOutputStream().flush();
response.getOutputStream().close();
当我在一个网页(代码大概如下)中调用。
<table>
<tr>
<tb>show_ml?id=1</tb><tb>show_ml?id=2</tb><tb>show_ml?id=3</tb><tb>show_ml?id=4</tb>
</tr>
<tr>
<tb>show_ml?id=5</tb><tb>show_ml?id=6</tb><tb>show_ml?id=7</tb><tb>show_ml?id=8</tb>
</tr>
<tr>
<tb>show_ml?id=9</tb><tb>show_ml?id=10</tb><tb>show_ml?id=11</tb><tb>show_ml?id=12</tb>
</tr>
<tr>
<tb>show_ml?id=13</tb><tb>show_ml?id=14</tb><tb>show_ml?id=15</tb><tb>show_ml?id=16</tb>
</tr>
</table>
我在数据库中图片都是不一样的,但是显示出来的时候有时候会有出现两张图片一样的,刷新一下可能又会变成另外两张一样的出来,不知道是什么原因,请各位大侠帮忙看看(数据库中的每张图片就几K大小)。