VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 793|回复: 7

急!从数据库读图片输出到JSP页面的问题

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-9 13:30:02 | 显示全部楼层 |阅读模式
...

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中有pitures表,其中第二个字段为image类型,表中有三行,每行的第二个字段为一张.JPG的图片。
我的问题是:一,每次从用上述代码从表中读数据显示到JSP页面中时,总是只显示第一行的那张图片。也无异常抛出。二,out.write()无法输出内容到JSP页面。
求解决办法。
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-5-30 19:45:02 | 显示全部楼层
跟踪下程序
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-5-31 01:15:01 | 显示全部楼层
把out.write("<table><tr><td>picture</td></tr>");中的TR放到while循环里看下
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-5-31 22:45:02 | 显示全部楼层

try{      

        ResultSet rs=s.executeQuery("select * from pictures");
                        response.setContentType("image/jpeg");  
                        OutputStream os = response.getOutputStream();  
                        out.write("测试图片输出");                       
                        while (rs.next())
                        {

                byte[] dt = rs.getBytes(2);
                        os.write(dt);                       

                        }
                        os.flush();
                        rs.close();               

} catch(Exception e)
     {   
         e.printStackTrace();
         throw new SQLException("错误:"+e);
     }

问题还是照旧
回复

使用道具 举报

0

主题

21

帖子

19.00

积分

新手上路

Rank: 1

积分
19.00
发表于 2020-6-2 09:00:02 | 显示全部楼层
一次http请求可以返回多个图片么?
个人认为应该不可以,至少不是这么简单。
response.setContentType("image/jpeg");
这是对一个base64编码段的注解啊,一个段里面怎么能同时图文混合,还要多张图,浏览器怎么知道数据在哪里分开?

所以多个图片应该在一个页面中给出访问地址,由浏览器逐个访问,分别get
你的程序可以接受个参数,确定访问的是哪一张图片,好给出回应。
回复

使用道具 举报

0

主题

14

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-6-2 14:15:01 | 显示全部楼层
先读出来存在临时文件夹中,然后在加载图片,不是更好?
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-6-5 09:00:01 | 显示全部楼层
这么写不行的.

因为你设置文件头是图片类型.那么它会把整个返回内容作为一张图片的内容来显示 
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>
回复

使用道具 举报

0

主题

21

帖子

19.00

积分

新手上路

Rank: 1

积分
19.00
发表于 2020-6-25 01:30:01 | 显示全部楼层
sundayday 所说正是我意
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表