小编典典

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

jsp

我正在尝试创建一个小型servlet,该servlet可以上传图像,并能够以幻灯片形式在其他页面中检索它们。

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

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

该代码前面的文件被检查为JPEG文件类型。


阅读 237

收藏
2020-06-08

共1个答案

小编典典

您需要了解HTTP和HTML的工作方式:

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

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

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

而且,您需要另一个映射到的servlet,该servlet
从文件系统imageServlet中读取由imageId参数值标识的图像的字节,并将这些字节写入响应输出流。

2020-06-08