JSP&サーブレット †
HTTPステータスの返し方 †
HttpServletResponse#setStatus()を使用してステータスコードを設定する。
設定する値は、HttpServletResponseクラスの定数として定義済み。
SC_OKなどの正常なレスポンスと同時に設定するステータスは、
レスポンスを送信する前に設定する必要がある。
エラーステータスの場合は、HttpServletResponse#sendError()を使用する。
HTTPステータス定義 †
100 | SC_CONTINUE |
101 | SC_SWITCHING_PROTOCOLS |
200 | SC_OK |
201 | SC_CREATED |
202 | SC_ACCEPTED |
203 | SC_NON_AUTHORITATIVE_INFORMATION |
204 | SC_NO_CONTENT |
205 | SC_RESET_CONTENT |
206 | SC_PARTIAL_CONTENT |
300 | SC_MULTIPLE_CHOICES |
301 | SC_MOVED_PERMANENTLY |
302 | SC_FOUND |
302 | SC_MOVED_TEMPORARILY |
303 | SC_SEE_OTHER |
304 | SC_NOT_MODIFIED |
305 | SC_USE_PROXY |
307 | SC_TEMPORARY_REDIRECT |
400 | SC_BAD_REQUEST |
401 | SC_UNAUTHORIZED |
402 | SC_PAYMENT_REQUIRED |
403 | SC_FORBIDDEN |
404 | SC_NOT_FOUND |
405 | SC_METHOD_NOT_ALLOWED |
406 | SC_NOT_ACCEPTABLE |
407 | SC_PROXY_AUTHENTICATION_REQUIRED |
408 | SC_REQUEST_TIMEOUT |
409 | SC_CONFLICT |
410 | SC_GONE |
411 | SC_LENGTH_REQUIRED |
412 | SC_PRECONDITION_FAILED |
413 | SC_REQUEST_ENTITY_TOO_LARGE |
414 | SC_REQUEST_URI_TOO_LONG |
415 | SC_UNSUPPORTED_MEDIA_TYPE |
416 | SC_REQUESTED_RANGE_NOT_SATISFIABLE |
417 | SC_EXPECTATION_FAILED |
500 | SC_INTERNAL_SERVER_ERROR |
501 | SC_NOT_IMPLEMENTED |
502 | SC_BAD_GATEWAY |
503 | SC_SERVICE_UNAVAILABLE |
504 | SC_GATEWAY_TIMEOUT |
505 | SC_HTTP_VERSION_NOT_SUPPORTED |
HTTPエラーの返し方 †
HttpServletResponse#setError()を使用してエラーステータスコードを設定する。
コードは上記の表の定義を用いる。
オリジナルのエラー画面を出力する †
HttpServletResponse#setError()を使用すると、独自のエラー画面を表示することは出来ない。
その場合は、HttpServletResponse#setStatus()を使用してエラーコードを設定し、その後、オリジナルのコンテンツをレスポンスで返すことで対応する。
真っ白な404エラー画面を作るサンプル
res.setStatus(HttpServletResponse.SC_NOT_FOUND); /* 404 */
PrintWriter out = res.getWriter();
out.close();
WEB.XMLの書き方 †