【问题标题】:How to render byte[] image to JSP? [duplicate]如何将 byte[] 图像渲染到 JSP? [复制]
【发布时间】:2018-01-06 01:07:43
【问题描述】:

我有一个字节表示的图像,我需要将此图像渲染到JSP 页面。我通过servlet.getOutputStream() 将字节数组发送到JSP。如何在浏览器中绘制我的图像?

我发送我的byte[]

byte[] image = getDAO().getImage(propose.getId());

ServletOutputStream os = resp.getOutputStream();
os.write(image);
os.close();

如何将图像渲染到JSP?

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    ...Somehow render get byte and render image ...
</body>
</html>

【问题讨论】:

    标签: java jsp servlets io


    【解决方案1】:

    您可以在您的 JSP 中使用 &lt;img&gt; 标记并将其简单地映射到提供图像的 servlet 的 URL,如下所示:

    <img src="urlOfYourServlet">
    

    【讨论】:

    • 如果我发送更多不同的数据可以吗?我在 JSP 中发送图像和另一个文本。
    • 您应该只使用 servlet 的输出流来写入一组数据。如果您需要向 JSP 发送一些文本,请引入另一个 servlet 来处理。
    • 但这是两个请求而不是一个,图像和文本数据不同。还是您的意思是使用 include()?
    • 对不起,我不熟悉 include 方法。我的意思是,如果您需要向 JSP 发送不同的数据类型,您应该为每种数据类型使用一个 servlet。例如,您可以有一个 ImageServlet,它只向 JSP 发送一个字节数组,而一个 TextServlet 向同一个 JSP 发送一些文本。然后,在 JSP 中,您只需映射到这两个 servlet 即可获取数据。我希望这能把事情弄清楚一点;如果没有,请随意询问任何模糊的内容。
    猜你喜欢
    • 2011-07-04
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多