5月 11th, 2008at 0:05
Tags: Java
HttpServletResponseのステータスコード
HttpServletResponseには以下のメソッドがある。
- response.setStatus(int)
- response.setStatus(int, msg)
- response.sendError(int)
- response.sendError(int, msg)
これでどうも設定できるみたい。
setStatusとsendErrorはどちらかを実行しないといけないっぽい。
setStatusの場合
ステータスコードを設定する。既存のものであろうがなかろうが、どんなステータスコードでも設定できる。
javadocを見ると
SC_OKなどエラーがない場合はこれを使う
となっているけど、上でも書いたようにHTTP的には500エラーはしったこっちゃないので、どれでも設定できると考えたほうがいいと思う。
sendErrorの場合
名前的にはErrorに分類されるステータスコードを設定しないといけないみたいだけど、setStatusと同じでなんでも設定できた。javadocには
エラーレスポンスを明確にクライアントに返す時に使ってね。バッファもクリアするよ。Sends an error response to the client using the specified status codeand clearing the buffer.
みたいに書いてある。
結論
2つの違いがわからないんだけど、
- バッファをクリアするかどうか
が違うのかもしれない。
ステータスコードを取り出したい
HTTP Clientを使えば取り出せるが自力はむりっぽい。(メソッドがない)
まーサーバとかががんばってくれる部分だろうからね。
I'm a software engineer who like travel to island in Japanese. Recently I am enjoying agile manager, coach, product owner for my work. The person grows like that.








