我正在开发一个项目,在项目主页上会有我添加的所有应用程序的徽标,所有徽标文件都存储在文件夹“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中。
任何人都知道如何以简单的方式做到这一点,因为我已经搜索并做了很多而且一无所获。请给我一个简单的方法。
感谢。
答案 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());
}