我有一个使用 XML 进行数据交换的 Java Web 应用程序。我编写了一个 servlet,它使用 HTTP Post 从特定客户端上传 XML 文件。一旦 Post 方法成功完成,它会向客户端发送 200 OK 消息(使用默认的 Web 服务器 HTTP 状态)。现在我需要在我的应用程序中包含一些 HTTP 状态代码,以便客户端在上传出现问题时获得一些 HTTP 状态消息(例如 400 错误请求,502 错误网关)。我应该如何在我的 Web 应用程序中添加 HTTP 状态代码?请帮我提出建议。谢谢
问问题
1135 次
2 回答
2
您可以使用HttpServletResponse#setStatus()
或HttpServletResponse#sendError()
。
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
// handle upload
// if error
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
// or
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
"An unknown error occurred");
}
这些方法的不同之处在于它们导致 servlet 容器执行的操作,因此请选择最适合您的情况的一种。
setStatus()
如果使用此方法设置错误代码,则不会触发容器的错误页面机制。
sendError()
使用指定状态向客户端发送错误响应并清除缓冲区。服务器默认创建响应,使其看起来像包含指定消息的 HTML 格式的服务器错误页面
状态代码常量列表可在javadoc 的字段摘要中找到。对于您问题中的代码:
于 2011-08-08T17:12:46.393 回答
1
response.sendError(res.SC_BAD_REQUEST, "需要重要参数"); response 是你的 HttpServletResponse 参见
于 2011-08-08T17:15:30.983 回答