在我的JSP / Servlet设置中,为了显示用户配置文件图像,我指示img
标记通过在src
标记中指定servlet URL然后从servlet返回图像来从servlet获取图像。
Sevlet在收到图片请求后会做下面的事情,
BLOB
格式byte
[]和response
对象中的图像。我的问题是,因为注册页面没有图片上传选项,所以新用户没有他们的图像在数据库中,因此BLOB
是NULL
。 如何为所有此类用户显示默认图片?
修改 根据收到的意见,我只想注意到这一点。我知道我们在数据库中设置默认值的解决方案(在创建用户时)或在数据库中存在NULL时返回默认图像数组。 我已经在使用后一种情况。通过这个问题,我只想讨论任何其他可能的解决方案。
答案 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只发送用户图像,如果用户没有特殊逻辑,则不会执行任何特殊逻辑。