我正在开发一项网络服务。我想将401: Unauthorized
响应返回给用户,以获取无效凭据。
如何手动返回此响应代码?
答案 0 :(得分:15)
对于401等错误状态代码,请使用更具体的sendError():
httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "your message goes here");
这会处理所有事情,它会设置状态代码并写入响应。
答案 1 :(得分:12)
假设您正在使用servlet,您可以使用setStatus
方法将http状态设置为401:
httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
答案 2 :(得分:0)
我从Austin's和Bodgan的答案中都学到了以下内容,这可能会为寻找该答案的其他人节省一些时间。
对我来说,正确答案是Bodgand's:
httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "your message goes here");
原因是使用sendError
方法引发的响应被web.xml
过滤器捕获了
因此,如果您在web.xml
处指定了过滤器,则此操作:
<error-page>
<error-code>401</error-code>
<location>/errors/401.jsp</location>
</error-page>
使用sendError
方法时,您只会看到该错误页面。