jsp网页输出二进制图片

我用的是主网页include动态加载子网页,主网页从servlet接收了从数据库查到的物品信息(包含二进制图片),使用byte[]数组存储后传到了子网页,这是从子网页接收的二进制图片参数

byte[]pictureByte=request.getParameter("pictureByte").getBytes();

求大神解答怎样将这个byte[]中的二进制数据读成图片啊,图片想显示在这个子网页的一个表格列中

附上我的部分代码,谢谢大神指正
<%.........省略部分其他参数
byte[]pictureByte=request.getParameter("pictureByte").getBytes();//接收图片字节数组
%>
<%
ServletOutputStream targetPic=response.getOutputStream();
targetPic.write(pictureByte);
targetPic.flush();
//这段代码报错,错误信息:Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException
%>
<img src="">这里面该怎么写?
基本流程草图如上

你这样试试呢,将图片的流首先在servlet中要设置成图片的格式(response.setContentType("image/jpeg"))好像是这么写来着,像jpg||png||gif之类的,然后在前台显示图片的地方将img标签的src的值指向你的流,应该能成功的,我自己机子上有代码的,但是要等晚上下班回去看下。

希望可以帮助到你。如果有帮助,记得采纳……追问

因为方便处理,我的Servlet数据查询得到的ResultSet是传给一个叫main.jsp的页面中,ResultSet中有多个商品信息,所以要循环输出到表格,所以我用的是main.jsp动态include 子网页,main.jsp取出二进制数据放在byte[]中作为参数传到子网页,子网页读取读取byte[]中数据现在图片在一个图片表格中
我想在jsp中处理图片,不是在servlet中,谢谢你的回答

追答

你想在jsp中处理图片什么意思?

追问

我补充了一个流程的草图,就是在JSP中获得了图片的byte[]数组,直接在JSP中处理这个byte[]然后显示在该JSP种的一个表格中

追答

有没有试过这样能不能拿到图片呢?
你处理ResultSet为什么要在jsp页面,中去做呢?放在servlet里面不是更好一些吗?

如果我是你的话,我可能会用ajax去做,直接在servlet中response.setContentType("image/jpeg");
然后在,我会按照这种思路去实现……

你的问题解决了吗?记得及时采纳答案哦,百度空间有我Q,线下可以交流哈,谢谢...

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-02-22
jsp网页输出二进制图片是通过流的方式实现的。
参考代码如下:
File file = new File("D:/IMAGE/test.jpg");
byte[] bbb = new byte[10240];
try {
InputStream a = new FileInputStream(file);
a.read(bbb);
System.out.println(bbb[0]);
System.out.println(Integer.toBinaryString(bbb[0]));
} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
实现思路:这里是一次把图片全读进来,所以定义的数组长度为10240,也就是10kb,当然也可以定义小点,然後分次读。
反正二进制都在这个数组里面,最后两句我只是举了个例子是说明怎麼看这个二进制,第一个是现实二进制对应的整数,第二个是显示二进制了。本回答被网友采纳
相似回答