setstatus(500)和senderror(500)之间有什么区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setstatus(500)和senderror(500)之间有什么区别相关的知识,希望对你有一定的参考价值。

在编写servlet时,我可以使用response.setStatus(500)response.sendError(500),这两者之间的区别是什么?

答案

setStatus可以用连续的setStatus用另一个代码推翻。相反,sendError立即将错误代码发送给客户端,无法撤消。对于错误,您应该使用sendError

https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletResponse.html#sendError(int)

另一答案

至少在Servlet 2.4+中,两种方法之间还有另一个细微差别:

response.sendError(500)将重定向到配置的错误页面(在web.xml中)为该状态代码,而response.setStatus(500)假定您提供响应正文,容器不检查匹配的错误页面声明。

以上是关于setstatus(500)和senderror(500)之间有什么区别的主要内容,如果未能解决你的问题,请参考以下文章

从 JSTL 显示 httpServletResponse.sendError(403, "My Message") 状态的最简单方法是啥

接收器关闭并在尝试通过通道发送时返回 SendError

try-with-resource vs java.lang.IllegalStateException:提交响应后无法调用 sendError()

java.lang.IllegalStateException: Cannot call sendError() after the response has been committe

java.lang.IllegalStateException: Cannot call sendError() after the response has been committed解读(示例代

SSH问题java.lang.IllegalStateException: Cannot call sendError() after the response has been committe