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

时间:2017-05-26 15:41:41

标签: java servlets java-ee

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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