0

我正在做一个项目,在项目主页上会有我添加的所有应用程序的徽标,所有徽标文件都存储在文件夹“c:/apps/myap”中。

我正在使用 Struts2 和 hibernate,如果我使用处理图像下载的处理器,那么我的项目会很慢,我不想使用任何程序来简单地在<img src='..' />.

如果我file.xml在 catalina/localhost 下使用

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/logo" docBase="c:/apps/myap/" /> 

什么都没有发生我无法看到我的图像。

我还将这些上下文添加到了同样不起作用的 server.xml 中。

任何人都知道如何以简单的方式做到这一点,因为我已经搜索并做了很多,但一无所获。请给我一个简单的方法。

谢谢。

4

1 回答 1

1

将图像的位置设置为,例如 web.xml 中的 Init 参数:

<init-param>
    <param-name>imageLocation</param-name>
    <param-value>c:/apps/myap/</param-value>
</init-param>

直接从您的 Servlet 访问它们。

编辑:然后可以使用 ImageIO 从 servlet 将图像提供给客户端,假设仅支持 JPEG。您需要针对其他图像类型进行调整。它未经测试,但应该让你开始:

public void doGet(HttpServletRequest request, HttpServletResponse response) {

  //What image is being requested?
  String imageName = request.getPathInfo();

  // Open image File
  File imageDirectory = new File(getServletContext().getInitParameter(“imageLocation”)); 
  File imageFile = new File(imageDirectory, imageName);

  //Read image
  BufferedImage image = ImageIO.read(new FileInputStream(imageFile));

  //Send image in response
  ImageIO.write(image, "jpeg", response.getOutputStream());
}
于 2013-11-14T09:41:03.860 回答