我正在创建一个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中找到任何如何做到这一点的例子。一点点的指导将非常感激。感谢。
答案 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
}