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端的解决方案。

PDF格式打印機    发送文章为PDF   

这篇文章上的评论的 RSS feed TrackBack URI

Leave a Reply