weapon项目服务器端动态加载图片
weapon项目已经可以加载图片了,见weapon项目增加图片的显示。但是静态的。
使用spring mvc动态加载图片文件,然后将流写入到Servlet输出流中。
代码如下:
@RequestMapping("/getImage.do")
public void getImage(@RequestParam("id") String id,
HttpServletRequest request, HttpServletResponse response) {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);if (id == null || id.isEmpty()) {
id = "1";
}try {
OutputStream outputStream = response.getOutputStream();
BufferedInputStream inputStream = new BufferedInputStream(
new FileInputStream(request.getSession()
.getServletContext().getRealPath("/images/")
+ id));
byte[] data = new byte[1024];
for (int i = inputStream.read(data); i > 0; i = inputStream
.read(data)) {
outputStream.write(data, 0, i);
}
inputStream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
其他的,变化不大,需要在web.xml文件中增加映射:
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
这样就可以动态加载图片了。
但是问题在于,gwt这边只加载一次同url的图片,如果再次创建带图片的对话框,将不再和服务器端通信。这需要GWT端的解决方案。
这篇文章上的评论的 RSS feed TrackBack URI