我正在开发网络服务。我想向401: Unauthorized
用户返回无效凭据的响应。
如何手动返回此响应代码?
对于 401 之类的错误状态代码,请使用更具体的sendError():
httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "your message goes here");
这会处理所有事情,它设置状态代码并写入响应。
假设您使用的是 servlet,您可以使用以下setStatus
方法将 http 状态设置为 401:
httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
我从Austin和Bodgan的答案中学到了以下内容,这可能会为其他寻找此答案的人节省一些时间。
对我来说,正确的答案是Bodgand 的:
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
当您使用该方法时,您只会看到该错误页面。