【问题标题】:How to display image on jsp from DB using java servlet如何使用 java servlet 在数据库中的 jsp 上显示图像
【发布时间】:2018-02-05 23:04:58
【问题描述】:

我要做的基本上是在 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页面是用图片来实现的。 这样,页面会丢弃其他内容,只显示图像。 我想要做的是使用显示几张图片

&lt;img src=??? width=??? height=???&gt;

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

请帮帮我

提前致谢。

【问题讨论】:

    标签: java mysql jsp servlets


    【解决方案1】:

    在我看来,你应该创建两个不同的 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>
    

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

    【讨论】:

    • 我不知道文件名,因为我刚刚保存到 mysql DB 中。另外,我不明白“.jsp 页面将包含一个 img 标签,src 将链接到第一个端点”是什么意思。
    • @JasonYang 您可以设置一个规则,即对于您的数据库表中索引为z 的图像,端点将为/images?id=z。当您的 servlet 将收到参数 id 等于 z 的请求时,您将在数据库中搜索索引为 z 的图像。关于您的问题,请看我的示例 #2...
    猜你喜欢
    • 2016-05-02
    • 2015-06-06
    • 1970-01-01
    • 2011-11-08
    • 2019-01-20
    • 2012-02-10
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多