您必须将图像文件嵌入HTML文档中,或者通过单独的HTTP请求使其可用。对于前者,您可以使用data:
URI方案。对于后者,您必须提供一个单独的servlet,或在同一servlet中提供一个单独的代码路径,以提供图像文件。它可能是从一些短暂的缓存中执行的,因此您不必再次执行相同的代码即可获取这些图像。
通常,嵌入数据的大小开销与图像的大小成正比,而单独的请求的资源开销与HTTP请求的数量成正比。对于小图像,前者可能更好,而对于大图像,后者会更快。实现嵌入应该比实现合理的图像缓存更容易,但是我不确定100%是否所有浏览器都支持数据方案。
无论哪种情况,您都必须BufferedImage
先将序列化为某个字节序列,可能要ImageIO.write
结合使用ByteArrayOutputStream
。