JSP&サーブレット

HTTPステータスの返し方

HttpServletResponse#setStatus()を使用してステータスコードを設定する。

設定する値は、HttpServletResponseクラスの定数として定義済み。

SC_OKなどの正常なレスポンスと同時に設定するステータスは、 レスポンスを送信する前に設定する必要がある。

エラーステータスの場合は、HttpServletResponse#sendError()を使用する。

HTTPステータス定義

100SC_CONTINUE
101SC_SWITCHING_PROTOCOLS
200SC_OK
201SC_CREATED
202SC_ACCEPTED
203SC_NON_AUTHORITATIVE_INFORMATION
204SC_NO_CONTENT
205SC_RESET_CONTENT
206SC_PARTIAL_CONTENT
300SC_MULTIPLE_CHOICES
301SC_MOVED_PERMANENTLY
302SC_FOUND
302SC_MOVED_TEMPORARILY
303SC_SEE_OTHER
304SC_NOT_MODIFIED
305SC_USE_PROXY
307SC_TEMPORARY_REDIRECT
400SC_BAD_REQUEST
401SC_UNAUTHORIZED
402SC_PAYMENT_REQUIRED
403SC_FORBIDDEN
404SC_NOT_FOUND
405SC_METHOD_NOT_ALLOWED
406SC_NOT_ACCEPTABLE
407SC_PROXY_AUTHENTICATION_REQUIRED
408SC_REQUEST_TIMEOUT
409SC_CONFLICT
410SC_GONE
411SC_LENGTH_REQUIRED
412SC_PRECONDITION_FAILED
413SC_REQUEST_ENTITY_TOO_LARGE
414SC_REQUEST_URI_TOO_LONG
415SC_UNSUPPORTED_MEDIA_TYPE
416SC_REQUESTED_RANGE_NOT_SATISFIABLE
417SC_EXPECTATION_FAILED
500SC_INTERNAL_SERVER_ERROR
501SC_NOT_IMPLEMENTED
502SC_BAD_GATEWAY
503SC_SERVICE_UNAVAILABLE
504SC_GATEWAY_TIMEOUT
505SC_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の書き方


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-09-30 (火) 11:47:03 (4033d)