在servlet响应中返回二进制和文本数据

时间:2012-01-04 22:36:36

标签: java servlets

有没有人有一个如何在单个servlet响应中发送二进制(图像)和基于文本的数据的示例?一个例子是返回在服务器上生成的所有图像和图像映射。我也无法找到用于执行此操作的混合模式mime类型。

思想?

4 个答案:

答案 0 :(得分:2)

您可以使用Data URI将二进制对象嵌入到生成的HTML中。 E.g。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4/8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">

另请参阅:https://serverfault.com/questions/241218/why-do-http-servers-not-send-a-single-file-back-when-possible#241224

答案 1 :(得分:2)

浏览器对多部分响应的支持仍然非常冒险(阅读here)。但是如果你打算在客户端自己解析响应,那里有一些非常好的例子。您正在寻找的mime类型是multipart/mixed

答案 2 :(得分:0)

这不是HTTP和HTML的工作方式。第一个请求是加载HTML代码。此HTML代码包含<img src="..."/>标记,指向图像的网址。然后,浏览器发出第二个请求以加载图像。您无法在单个请求中下载HTML和图像。

答案 3 :(得分:0)

许多WAP浏览器支持多部分响应,但我不认为“常规”浏览器会这样做。

另见Browser support of multipart responses