缓存由浏览器中的url映射的文件

时间:2011-06-16 11:43:28

标签: http caching servlets spring-mvc cache-control

我有一个映射在像/ foo / * / image这样的url的方法下载图像,我希望浏览器缓存该图片。但我没有得到它。我可以在Firefox中看到firebug请求没有被缓存,它也发生在Chrome中。

我正在尝试在方法中将Cache-Control设置为“max-age = 3600,public”,但它似乎没有做任何事情。

下面是Spring-MVC在控制器中调用的方法的一段代码。

任何人都可以帮助我吗?

感谢。

@RequestMapping(value="/foo/{id}/image", method=RequestMethod.GET)
    public void showImage(
            @PathVariable("id") String id,
            HttpServletRequest request,
            HttpServletResponse response,
            Model model) throws Exception{

        //add image to the response
        service.read(id, response);

        //mark the response as cacheable
        HttpServletResponse httpResp = ((HttpServletResponse) response);
        httpResp.setHeader("Cache-Control", "max-age=3600, public");
    }

1 个答案:

答案 0 :(得分:0)

考虑使用<mvc:resources>。在那里你可以设置缓存。

除此之外,请确保您的请求不会通过覆盖标头的代理,并确保不会重定向响应。