我正在编写代码,其中我正在从数据库中读取 blob 图像,并希望在我的 jsp 页面上显示该图像。
通过谷歌我找到了可以将字节[]转换为缓冲图像的解决方案
但是如何在 jsp 页面上使用缓冲图像...?
我正在编写代码,其中我正在从数据库中读取 blob 图像,并希望在我的 jsp 页面上显示该图像。
通过谷歌我找到了可以将字节[]转换为缓冲图像的解决方案
但是如何在 jsp 页面上使用缓冲图像...?
我建议写一个servletImageProvider
<servlet>
<servlet-name>showMyImage</servlet-name>
<servlet-class>com.photo.gallery.ImageProvider</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>showMyImage</servlet-name>
<url-pattern>/showMyImage</url-pattern>
</servlet-mapping>
现在在 JSP 页面中使用它,例如:
<img src="showMyImage?imageFimeName=flowers.jpg" / >
这里是doGet
执行ImageProvider
public void doGet(HttpServletRequest request, HttpServletResponse response) {
/*Now you have the byte[] array by some way...
* Lets call it imageBytes[] */
response.setContentType("image/jpeg");
response.setContentLength(imageBytes.length);
response.getOutputStream().write(imageBytes);
}
最简单的方法是使用 servlet 或不同的 jsp 发送您的图像。
如果您使用 JSP,请注意仅发送不带任何 html(或空行)的二进制文件。像这样的例子:
response.setContentType("image/png");
OutputStream sos = response.getOutputStream();
BufferedImage myImage = stuff.getImage(request.getParameter("id"));
ImageIO.write(myImage, "png", sos);
sos.flush();
sos.close();
(这里使用 javax.imageio.ImageIO)
然后你可以像这样简单地使用图像:
<img src="myservlet.jsp?id=somestuff">