【问题标题】:Help creating a image servlet using Spring帮助使用 Spring 创建图像 servlet
【发布时间】:2010-11-01 12:07:09
【问题描述】:

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

我对 Spring 很陌生,但我做了一些阅读,看起来我需要使用 MVC,但对类和方法声明的外观感到困惑。我需要使用@Controller 注释吗?我真的只需要一个像样的例子,这样我就可以遵循它并知道将我的代码放在哪里。

目前我的班级是这样声明的

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

我假设这是错误的,但我找不到任何关于如何在 Spring 中执行此操作的示例。一点指导将不胜感激。谢谢。

【问题讨论】:

  • 首先是这个问题:在 servlet 中你到底需要 Spring 做什么?
  • 我不知道,我真的不知道这样做需要什么,我刚刚读到有人在某个地方使用过 Spring,我想我也需要这样做。
  • 博卓已经介绍过了。尽量不要使事情过于复杂。如果您不需要 Spring 管理的 bean,那么就不要尝试了 :)
  • 我并没有试图以艰难的方式去做,我只是想以正确的方式去做。如果春天不是正确的方法,那么我误解了。感谢您的帮助。

标签: java spring jsf spring-mvc


【解决方案1】:

如果您不需要访问 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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多