3

我正在编写代码,其中我正在从数据库中读取 blob 图像,并希望在我的 jsp 页面上显示该图像。

通过谷歌我找到了可以将字节[]转换为缓冲图像的解决方案

但是如何在 jsp 页面上使用缓冲图像...?

4

2 回答 2

2

我建议写一个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);
}
于 2012-04-24T13:02:37.103 回答
2

最简单的方法是使用 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">
于 2012-04-24T12:52:57.680 回答