事实上,必须引用公共网页URL,而不是本地磁盘文件系统路径。您的图片必须通过HTTP请求提供。这就是网页浏览器必须下载它们,而不是必须以某种方式包含它们的网络服务器。
对于初学者来说,最简单的方法是创建一个servlet它获取的图像内容由FileInputStream的InputStream基于请求参数或路径信息,然后将它写入通常的Java IO方式向HttpServletResponse的OutputStream,后已经设置了必要的HTTP响应头文件,以便浏览器理解如何处理它。
String filename = request.getPathInfo();
File file = new File("/home/website/images", filename);
response.setHeader("Content-Type", getServletContext().getMimeType(filename));
response.setHeader("Content-Length", String.valueOf(file.length()));
InputStream input = new FileInputStream(file);
OutputStream output = response.getOutputStream();
// Stream bytes the usual way.
另一种方法是作为一个新的Web应用程序上下文添加/home/website/images到服务器的/images上下文路径。通过这种方式,图像可以通过http://example.com/images/image1.png获得。您只依赖于servletcontainer make/version如何配置以及您是否完全控制它。对于码头,这将是下面的,如果你编程的IT管理:
server.setHandler(new WebAppContext("/home/webapp/images", "/images"));
或者当你通过XML管理IT:
/home/website/images
/images