急!从数据库读图片输出到JSP页面的问题
...
try{
ResultSet rs=s.executeQuery( "select * from pictures ");
response.setContentType( "image/jpeg ");
OutputStream os = response.getOutputStream();
out.write( " <table> <tr> <td> picture </td> </tr> ");
while (rs.next())
{
byte[] dt = rs.getBytes(2);
os.write(dt);
}
os.flush();
rs.close();
} catch(Exception e)
{
e.printStackTrace();
throw new
SQLException( "错误: "+e);
}
...
在SQL Server 2000中有pitures表,其中第二个字段为image类型,表中有三行,每行的第二个字段为一张.JPG的图片。
我的问题是:一,每次从用上述代码从表中读数据显示到JSP页面中时,总是只显示第一行的那张图片。也无
异常抛出。二,out.write()无法输出内容到JSP页面。
求解决办法。
------解决方案--------------------跟踪下程序
------解决方案--------------------一次http请求可以返回多个图片么?
个人认为应该不可以,至少不是这么简单。
response.setContentType( "image/jpeg ");
这是对一个base64编码段的注解啊,一个段里面怎么能同时图文混合,还要多张图,浏览器怎么知道数据在哪里分开?
所以多个图片应该在一个页面中给出访问地址,由浏览器逐个访问,分别get
你的程序可以接受个参数,确定访问的是哪一张图片,好给出回应。
------解决方案--------------------先读出来存在临时文件夹中,然后在加载图片,不是更好?
------解决方案--------------------这么写不行的.
因为你设置文件头是图片类型.那么它会把整个返回内容作为一张图片的内容来显示
response.setContentType( "image/jpeg ");
这是二次响应问题..
你应该先把整个页面的代码 <html> 输出.
在你要显示图片的地方 连接到servlet
<html>
<table>
<tr>
<td>
<img scr= "servlet的连接........... " > <!--图片1的连接-->
</td>
<td>
<img scr= "servlet的连接........... " > <!--图片2的连接-->
</td>
<td>
<img scr= "servlet的连接........... " > <!--图片3的连接-->
</td>
</tr>
</table>
<html>
------解决方案--------------------yunxiang(无名) 所说正是我意