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

时间:2012-06-13 10:50:27

标签: java jsp servlets servlet-3.0

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

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

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

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

2 个答案:

答案 0 :(得分:1)

  

他们我需要他们成为JSP的一部分,其中包含其他内容,

在JSP中使用image标签

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

答案 1 :(得分:1)

您需要了解HTTP和HTML的工作原理:

  1. 浏览器要求提供HTML页面(第一次请求)
  2. 服务器发送回HTML(仅限HTML),其中包含3个<img src="..."/>标记
  3. 浏览器发送请求以获取第一个图像的字节(第二个请求)
  4. 服务器发回第一张图片的字节
  5. 浏览器发送请求以获取第二个图像的字节(第三个请求)
  6. 服务器发回第二张图片的字节
  7. 浏览器发送请求以获取第三个图像的字节(第四个请求)
  8. 服务器发回第三张图片的字节
  9. 因此,您需要一个生成HTML页面的servlet或JSP,其中包含您的所有<img src="..."/>标记。每个标签应具有以下形式:

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

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