在webapps外面的jsp上显示图像

时间:2013-11-14 09:27:41

标签: java jsp struts2

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

我正在使用Struts2和hibernate,如果我使用处理图像下载的处理器,那么我的项目将非常慢,我不想使用任何程序只是在<img src='..' />上显示徽标图像。

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

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

没有任何反应我无法看到我的形象。

我还将这些上下文添加到也无法正常工作的server.xml中。

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

感谢。

1 个答案:

答案 0 :(得分:1)

将图片的位置设置为,例如web.xml中的Init Param:

<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());
}