フォームの送信に応答するための単純なサーブレットを作成しています。このサーブレットはPOSTリクエストを受信し、Application/JSONデータに応答する必要があります。これはうまく機能しています。ここで、サーブレットにエラー管理を追加します。サーブレットが不正なリクエストパラメータを受信した場合、クライアントに400 —「不正なリクエスト」応答と単純な{"error":"ERROR MESSAGE"}
JSON応答を応答させます。
を使用しHttpServletResponse#sendError(int,String)
てエラーを正しく送信していますが、以前に使用した場合でもContentType
、応答のは常にに設定されています。text/html
HttpServletResponse#setContentType("application/json")
これは、Servetsを使用してエラーを送信するための良い方法ですか?ContentType
応答を強制するにはどうすればよいapplication/json
ですか?
テストサーブレットの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);
}