java - 帮助使用 Spring 创建图像 servlet

标签 java spring jsf spring-mvc

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

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

目前我的类(class)是这样声明的

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

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

最佳答案

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

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

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

关于java - 帮助使用 Spring 创建图像 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4068692/

相关文章:

java - JSF 中的循环 managebean 检测错误

java - 同时使用多个 Gradle 依赖版本

java - 登录后自定义区域设置重定向 - Spring Security

java - hibernate 搜索 : How to update an index by two Spring(JVM) processes?

java - 初始化任何对象都会导致跳过部分代码

java - JSF:如何同时渲染=#{bean.isRendered}多个组件

java - 强制接口(interface)中指定的方法仅在抽象类外部定义

java - 如何访问 HQL 中的枚举属性?

java - 如何使用 Spring MySQL 和 RowCallbackHandler 管理大型数据集

forms - 如何动态添加新行到p :dataTable without validating the form?