在我的JSP / Servlet设置中,为了显示用户个人资料图像,我img通过在src标记中指定Servlet URL来指示标记从servlet获取图像,然后响应servlet返回图像。
img
src
Sevlet在收到图像请求后会执行以下操作,
BLOB
byte
response
我的问题是,由于“注册”页面没有图像上传选项,因此新用户的数据库中没有图像,即BLOBis NULL。 如何为所有此类用户显示默认图像?
NULL
编辑 根据收到的评论,我只是想注意一下。我知道解决方案,我们在数据库中(创建用户时)设置默认值,或者在数据库中存在NULL时返回默认图像数组。 我已经在使用后一种情况。 通过这个问题,我只想讨论 任何其他可能的解决方案 。
一种选择是在用户没有图像时返回HTTP错误404“未找到”。对我来说,这很合逻辑,因为用户确实没有图像。
public void doGet(HttpServletRequest request, HttpServletResponse response) { response.sendError(HttpServletResponse.SC_NOT_FOUND); }
然后,在HTML中,您可以使用onerror事件设置默认图片来处理这种情况:
<img src="servletUrl" onerror="this.src='default.png'" width="150" height="150" />
这样,servlet仅发送用户图像,如果用户没有图像,则不执行任何特殊逻辑。