繁体   English   中英

如何使用java servlet从DB在jsp上显示图像

[英]How to display image on jsp from DB using java servlet

我想要做的基本上是在jsp页面上显示来自Mysql的图像。 我能够使用以下代码成功地将 blob 图像文件调用到我的 java servlet 中的输出流中。

在 servlet 中,

byte[] imgData = null;
Blob image1 = null;
image1 = result.getBlob("image1");
imgData = image1.getBytes(1, (int)image1.length());

在jsp中,

<% 
response.setContentType("image/gif");
OutputStream o = response.getOutputStream();
o.write(imgData);
%>

这种方法的问题是这个jsp页面是用图像完成的。 这样,页面会丢弃其他内容,只显示图像。 我想要做的是使用

 <img src=??? width=??? height=???>

我试图调整输出流图像的大小,但我认为没有办法。

请帮我

提前致谢。

在我看来,您应该创建两个不同的 servlet:

一种用于通过从HttpServlet获取写入器并写入字节数组作为响应来下载图像。

二, .jsp页面将包含一个img标签, src将链接到第一个端点。

这看起来像:

1)

public class ImageServlet extends HttpServlet {
    //...
    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        //...
        response.setHeader("Content-Type", this.getServletContext().getMimeType(imageFileName));
        response.setHeader("Content-Length", X);
        response.getOutputStream().write(<<image byte[]>>);
    }

2)

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"
     prefix="c" %>
<html>
    <head><title>Hello</title></head>
    <body bgcolor="white">
        <img src="/images?id=3" height="Xpx" width="Ypx">
         <h2>My name is Duke. What is yours?</h2>
    </body>
</html>

我认为这应该有效。 如果答案有帮助,请投票作为接受的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM