java中oracle多个blob类型如何在jsp中显示成图片

如题,比如数据库中根据某一特定要求保存多个blob类型的图片,如果把他们都显示在页面上?... 如题,比如数据库中根据某一特定要求保存多个blob类型的图片,如果把他们都显示在页面上? 展开
 我来答
77490508a
2013-10-29
知道答主
回答量:5
采纳率:0%
帮助的人:2万
展开全部

使用WSH(webwork,spring,hibernate)技术,在页面中加载10-20个图片时,因为数据都是在oracle 10g中以blob类型存储,页面代码采用webwork标签iterator遍历集合,iterator标签里写了一个<img>

前台代码如下:

<ww:iterator value="bloblist" id="it" status="rowstatus">
<%--显示图片--%>
<img id='<ww:property value="id"/>' name="imgId" width="120" height="120" src="/blobUtil/getImg.action?id=<ww:property value='bloblist[#rowstatus.index].id'/>" />
</ww:iterator>

后台代码:
   

public String getImg() throws Exception{
        BufferedInputStream ins;//取得BLOB的IO流
        OutputStream ops;
        byte[] bt = null;
        getResponse().setContentType("image/JPEG");
        Blob bo = bjqeDtRelationService.getBjqeDtRelationChildBlob(imgId);
        if (bo == null) return null;
        InputStream is = bo.getBinaryStream();
        ins = new BufferedInputStream(is);
        int bufferSize = (int) bo.length();//取得BLOB的长度
        bt = new byte[bufferSize];
        ins.read(bt, 0, bufferSize);
        getResponse().getOutputStream().write(bt);
        ops = getResponse().getOutputStream();
        ops.flush();
        ops.close();
        ins.close();
        return null;
    }
百度网友33dcad5a0
2013-10-26 · TA获得超过164个赞
知道答主
回答量:69
采纳率:100%
帮助的人:81.5万
展开全部
定义一个规则,让每个blob内容都对应一个http开头的url。
jsp展示图片的时候使用这些url作为image的src。
实际上jsp显示图片就是向服务器请求这些url,服务器应该返回对应的图片文件。
这些图片文件的内容就是blob中的内容。
服务端的实现就是按你定义的规则,通过请求的url找到对应的blob,然后把blob的内容以流的形式返回。当然还要按http协议要求,加上合适的mime type,content type,content length等信息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2013-10-26 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2897万
展开全部
用流啊,jsp页面读取数据流,然后写成图像文件。
这个好像网上也不少啊。找找看。不明白的话再问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式