Spring中的非静态资源

时间:2011-12-18 18:11:08

标签: java spring resources mapping

我得到了Spring 2.5.6,我正试图在其中实现一些愚蠢的功能。

我的服务器机器中有一个照片目录,我想将这些照片曝光给用户。这个问题的常见解决方案是什么?

P.S。 到现在为止,我正在使用我自己的控制器将照片写入响应,这对我来说不是很方便,因为我想保持我的照片的网址很友好(例如像/myServlet/images/012345.jpg)。

1 个答案:

答案 0 :(得分:1)

拥有自己的控制器是一个很好的解决方案。以下是我PictureController的简化副本:

@RequestMapping("/pictures/{filename}.{extension}")
public void getPicture(@PathVariable String filename,
        @PathVariable String extension, OutputStream outputStream,
        HttpServletResponse response) {

    DateTime cachePeriod = new DateTime();
    cachePeriod = cachePeriod.plusDays(5);
    response.setDateHeader("Expires", cachePeriod.getMillis());
    pictureService.writePicture(filename + "." + extension, outputStream);
}

pictureService只需IOUtils.copy(imageStream, outputStream)