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