使用 servlet 从 Web 根文件夹外部的文件夹中检索图像



我正在尝试创建一个上传图像的小 servlet,并能够在不同的页面中检索它们作为幻灯片。

我可以将它们保存在 WebApp 文件夹之外,但在检索它们时,我需要它们成为 JSP 的一部分,除了图像之外,JSP 还将包含其他内容。目前,我正在使用 BufferedImage 和 ImageIO 类来一次流式传输一个图像。

BufferedImage image = ImageIO.read(new File("D:\"+file.getName()));
ImageIO.write(image, "jpg", response.getOutputStream());

在代码前面检查该文件是否为 JPEG 文件类型。

你需要了解HTTP和HTML是如何工作的:

  1. 浏览器要求输入 HTML 页面(第一个请求)
  2. 服务器发回 HTML(仅限 HTML),包含 3 个<img src="..."/>标签
  3. 浏览器发送请求以获取第一个图像的字节数(第二个请求)
  4. 服务器发回第一个图像的字节
  5. 浏览器发送请求以获取第二个图像的字节(第三个请求)
  6. 服务器发回第二个图像的字节
  7. 浏览器发送请求以获取第三个图像的字节(第四个请求)
  8. 服务器发回第三个图像的字节

因此,您需要一个 servlet 或 JSP 来生成包含所有<img src="..."/>标记的 HTML 页面。此标记中的每一个都应具有以下形式:

<img src="imageServlet?imageId=564"/>

你需要第二个 servlet,映射到 imageServlet ,它从文件系统读取由 imageId 参数值标识的图像字节,并将这些字节写入响应输出流。

他们需要他们成为JSP的一部分,JSP将具有其他内容,

在 JSP 中使用图像标记

<image src="/context-root/YourServlet?param=value" alt="blah blah"/>

最新更新