我正在创建一个简单的 Servlet 来回答表单提交。此 servlet 接收 POST 请求并应响应 Application/JSON 数据。这运作良好。我现在想为我的 servlet 添加错误管理:如果 servlet 接收到错误的请求参数,我希望它用一个简单的{"error":"ERROR MESSAGE"}
JSON 响应来回答客户端一个 400 - “Bad Request” 响应。
我正在使用HttpServletResponse#sendError(int,String)
来正确发送错误,但ContentType
响应的 始终设置为text/html
,即使我以前使用HttpServletResponse#setContentType("application/json")
过。
这是使用 Servets 发送错误的好方法吗?我怎样才能强制ContentType
响应application/json
?
我的测试 Servlet 的 doPost() 方法的示例代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("{\"error\":1}");
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
}