如何在图像源是servlet时显示默认图像?

时间:2014-09-25 07:07:03

标签: java html image jsp servlets

在我的JSP / Servlet设置中,为了显示用户配置文件图像,我指示img标记通过在src标记中指定servlet URL然后从servlet返回图像来从servlet获取图像。

Sevlet在收到图片请求后会做下面的事情,

  1. 它以BLOB格式
  2. 从数据库中获取图像
  3. byte []和
  4. 准备图片
  5. 使用适当的标题返回response对象中的图像。
  6. 我的问题是,因为注册页面没有图片上传选项,所以新用户没有他们的图像在数据库中,因此BLOBNULL如何为所有此类用户显示默认图片?

    修改 根据收到的意见,我只想注意到这一点。我知道我们在数据库中设置默认值的解决方案(在创建用户时)或在数据库中存在NULL时返回默认图像数组。 我已经在使用后一种情况。通过这个问题,我只想讨论任何其他可能的解决方案

1 个答案:

答案 0 :(得分:1)

一个选项可能是返回HTTP错误404"未找到"当用户没有图像时。这对我来说似乎很合乎逻辑,因为用户确实没有图像。

public void doGet(HttpServletRequest request, HttpServletResponse response) {
    response.sendError(HttpServletResponse.SC_NOT_FOUND);
}

然后在您的HTML中,您可以使用onerror Event来设置默认图像来处理此案例:

<img src="servletUrl" onerror="this.src='default.png'" width="150" height="150" />

通过这种方式,servlet只发送用户图像,如果用户没有特殊逻辑,则不会执行任何特殊逻辑。