使用Spring帮助创建图像servlet

时间:2010-11-01 12:07:09

标签: java spring jsf spring-mvc

我正在创建一个JSF应用程序,我有一堆图像(头像)存储在我的数据库中作为blob。我正在尝试创建一个servlet,所以我可以调用一个url,例如“/ imageServlet?123,它将调用我的servlet传递123作为id等等并输出Stream。

我是Spring的新手,但是我做了一些阅读,看起来我需要使用MVC,但我很困惑这个类和方法声明需要的样子。我需要使用@Controller注释吗?我真的需要一个不错的例子,所以我可以关注它并知道我的代码放在哪里。

目前我的班级被宣布为

public class ImageServlet extends HttpServlet {
    ...
    @Override 
    protected void doGet(HttpServlet request, HttpServletResponse respose) {
      ...
    }
}

我认为这是错误的,但我无法在Spring中找到任何如何做到这一点的例子。一点点的指导将非常感激。感谢。

1 个答案:

答案 0 :(得分:6)

如果您不需要访问spring上下文,您可以安全地拥有一个类似于您展示的servlet。您只需使用request.getParameter("id")(类型为/imageServlet?id=123的网址)。

但是,如果您需要访问spring bean,以便可以获得与传递的id相对应的用户,那么您可以使用以下方法获得@Controller

@RequestMapping("/image/{id}")
@ResponseBody
public byte[] getImage(@PathVariable int id) {
     // load the image into a byte array and return it
}