public interface HttpServletResponse extends ServletResponse
ServletResponse
インターフェースを拡張して、レスポンスを送信する時に使用するHTTP固有の機能を提供します。
たとえば、HTTPヘッダーやCookieにアクセスするためのメソッドを持ちます。
サーブレットコンテナはHttpServletResponse
のオブジェクトを作成し、
サーブレットのserviceメソッド(doGet
、doPost
など)に引数として渡します。
ServletResponse
修飾子とタイプ | フィールドと説明 |
---|---|
static int |
SC_ACCEPTED
リクエストが処理のために受け入れられたが完了していないことを示すステータスコード。
|
static int |
SC_BAD_GATEWAY
HTTPサーバーがプロキシまたはゲートウェイとして動作している時に参照したサーバーから不正なレスポンスを受信したことを示すステータスコード。
|
static int |
SC_BAD_REQUEST
クライアントから送信されたリクエストが構文的に正しくないことを示すステータスコード。
|
static int |
SC_CONFLICT
リソースの現在の状態との競合のためにリクエストを完了できなかったことを示すステータスコード。
|
static int |
SC_CONTINUE
クライアントが処理を続行できることを示すステータスコード。
|
static int |
SC_CREATED
リクエストが成功し、サーバー上に新しいリソースを作成したことを示すステータスコード。
|
static int |
SC_EXPECTATION_FAILED
サーバーがExpetリクエストヘッダーで指定された期待値を満たすことができなかったことを示すステータスコード。
|
static int |
SC_FORBIDDEN
サーバーがリクエストを理解したがそれを実行することを拒否したことを示すステータスコード。
|
static int |
SC_FOUND
リソースが一時的に異なるURIの下に存在することを示すステータスコード。
|
static int |
SC_GATEWAY_TIMEOUT
サーバがゲートウェイまたはプロキシとして動作している間にアップストリームサーバーから時間に間に合ったレスポンスを受信しなかったことを示すステータスコード。
|
static int |
SC_GONE
リソースがもはやサーバーで利用可能でなく、転送先アドレスがわからないことを示すステータスコード。
|
static int |
SC_HTTP_VERSION_NOT_SUPPORTED
サーバーがリクエストメッセージで使用されたHTTPプロトコルのバージョンをサポートしていないかサポートすることを拒否したことを示すステータスコード。
|
static int |
SC_INTERNAL_SERVER_ERROR
リクエストを完了できなかったHTTPサーバー内のエラーを示すステータスコード。
|
static int |
SC_LENGTH_REQUIRED
Content-Length が定義されていないためリクエストを処理できないことを示すステータスコード。 |
static int |
SC_METHOD_NOT_ALLOWED
Request-Line で指定されたメソッドがRequest-URI によって識別されるリソースで許可されていないことを示すステータスコード。 |
static int |
SC_MOVED_PERMANENTLY
リソースが新しい場所に永続的に移動し、将来の参照ではリクエストに新しいURIを使用する必要があることを示すステータスコード。
|
static int |
SC_MOVED_TEMPORARILY
リソースが一時的に別の場所に移動したが、将来の参照でも元のURIを使用してリソースにアクセスする必要があることを示すステータスコード。
|
static int |
SC_MULTIPLE_CHOICES
リクエストされたリソースが、それぞれがそれ自身の特定の位置を有する1組の表現のうちの任意の1つに対応することを示すステータスコード。
|
static int |
SC_NO_CONTENT
リクエストが成功したが、返されるべき新しい情報が存在しないことを示すステータスコード。
|
static int |
SC_NON_AUTHORITATIVE_INFORMATION
クライアントによって提示されたメタ情報がサーバーから発信されていなかったことを示すステータスコード。
|
static int |
SC_NOT_ACCEPTABLE
リクエストによって識別されたリソースが、リクエストで送信されたacceptヘッダーに従って許容できないコンテンツ特性を有する
レスポンスエンティティを生成することしかできないことを示すステータスコード。
|
static int |
SC_NOT_FOUND
リクエストされたリソースが利用可能でないことを示すステータスコード。
|
static int |
SC_NOT_IMPLEMENTED
HTTPサーバーがリクエストを完了するために必要な機能をサポートしていないことを示すステータスコード。
|
static int |
SC_NOT_MODIFIED
条件付きのGET操作が、リソースが利用可能であるが変更されていないことを検出したことを示すステータスコード。
|
static int |
SC_OK
リクエストが正常に成功したことを示すステータスコード。
|
static int |
SC_PARTIAL_CONTENT
サーバがリソースに対する部分的なGETリクエストを満たしたことを示すステータスコード。
|
static int |
SC_PAYMENT_REQUIRED
将来の使用のために予約されたステータスコード。
|
static int |
SC_PRECONDITION_FAILED
リクエストヘッダーフィールドの1つ以上で与えられた前提条件がサーバ上でテストされたときにfalseと評価されたことを示すステータスコード。
|
static int |
SC_PROXY_AUTHENTICATION_REQUIRED
クライアントが最初にプロキシで認証されなければならないことを示すステータスコード。
|
static int |
SC_REQUEST_ENTITY_TOO_LARGE
リクエストエンティティがサーバーが処理できる量よりも大きいため、
サーバーがリクエストの処理を拒否していることを示すステータスコード。
|
static int |
SC_REQUEST_TIMEOUT
サーバーが待機する準備ができた時間内にクライアントがリクエストを生成しなかったことを示すステータスコード。
|
static int |
SC_REQUEST_URI_TOO_LONG
Request-URI がサーバーが解釈できる長さよりも長いため、
サーバーがリクエストの処理を拒否していることを示すステータスコード。 |
static int |
SC_REQUESTED_RANGE_NOT_SATISFIABLE
サーバが要求されたバイト範囲を提供できないことを示すステータスコード。
|
static int |
SC_RESET_CONTENT
エージェントがリクエストの送信を引き起こしたドキュメントビューをリセットする必要があることを示すステータスコード。
|
static int |
SC_SEE_OTHER
リクエストに対するレスポンスが異なるURIの下で見つけられることを示すステータスコード。
|
static int |
SC_SERVICE_UNAVAILABLE
HTTPサーバーが一時的にオーバーロードされ、リクエストを処理できないことを示すステータスコード。
|
static int |
SC_SWITCHING_PROTOCOLS
サーバーがUpgradeヘッダーに従ってプロトコルを切り替えることを示すステータスコード。
|
static int |
SC_TEMPORARY_REDIRECT
リクエストされたリソースが一時的に異なるURIの下に存在することを示すステータスコード。
|
static int |
SC_UNAUTHORIZED
リクエストがHTTP認証を要求することを示すステータスコード。
|
static int |
SC_UNSUPPORTED_MEDIA_TYPE
リクエストのエンティティが、リクエストされたリソースへのリクエストされたメソッドでサポートされていないフォーマットのため、
サーバーがリクエストの処理を拒否していることを示すステータスコード。
|
static int |
SC_USE_PROXY
Location フィールドによって与えられたプロキシを介してリクエストされたリソースにアクセスしなければならない ことを示すステータスコード。 |
修飾子とタイプ | メソッドと説明 |
---|---|
void |
addCookie(Cookie cookie)
指定されたCookieをレスポンスに追加します。
|
void |
addDateHeader(String name,
long date)
指定された名前と日付値を持つレスポンスヘッダーを設定します。
|
void |
addHeader(String name,
String value)
指定された名前と値を持つレスポンスヘッダーを設定します。
|
void |
addIntHeader(String name,
int value)
指定された名前と整数値を持つレスポンスヘッダーを設定します。
|
boolean |
containsHeader(String name)
名前付きレスポンスヘッダーがすでに設定されているかどうかを示すbooleanを返します。
|
String |
encodeRedirectUrl(String url)
非推奨です。
Version 2.1から
encodeRedirectURL(String) に置き換えられました。 |
String |
encodeRedirectURL(String url)
指定されたURLを
sendRedirect(String) メソッドで使用するためにエンコードします。 |
String |
encodeUrl(String url)
非推奨です。
Version 2.1から
encodeURL(String) に置き換えられました。 |
String |
encodeURL(String url)
指定されたURLをセッションIDを含めてエンコードします。
|
String |
getHeader(String name)
指定された名前でレスポンスヘッダーの値を取得します。
|
Collection<String> |
getHeaderNames()
このレスポンスのヘッダーの名前の一覧を取得します。
|
Collection<String> |
getHeaders(String name)
指定された名前でレスポンスヘッダーの値を取得します。
|
int |
getStatus()
このレスポンスの現在のステータスコードを取得します。
|
default Supplier<Map<String,String>> |
getTrailerFields()
トレイラーヘッダーのサプライヤを取得します。
|
void |
sendError(int sc)
指定されたステータスを使用してエラーレスポンスをクライアントに送信し、バッファをクリアします。
|
void |
sendError(int sc,
String msg)
指定されたステータスを使用してエラーレスポンスをクライアントに送信し、バッファをクリアします。
|
void |
sendRedirect(String location)
指定されたリダイレクト先のURLを使用してクライアントに一時的なリダイレクトレスポンスを送信し、バッファをクリアします。
|
void |
setDateHeader(String name,
long date)
指定された名前と日付値を持つレスポンスヘッダーを設定します。
|
void |
setHeader(String name,
String value)
指定された名前と値を持つレスポンスヘッダーを設定します。
|
void |
setIntHeader(String name,
int value)
指定された名前と整数値を持つレスポンスヘッダーを設定します。
|
void |
setStatus(int sc)
レスポンスにステータスコードを設定します。
|
void |
setStatus(int sc,
String sm)
非推奨です。
Version 2.1 からメッセージパラメータのあいまいな意味のために非推奨になりました。
ステータスコードを設定するためには
setStatus(int) を使用してください。
エラーと一緒に説明文を送るためにはsendError(int, String) を使用してください。 |
default void |
setTrailerFields(Supplier<Map<String,String>> supplier)
トレイラーヘッダーのサプライヤを設定します。
|
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getOutputStream, getWriter, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
static final int SC_CONTINUE
static final int SC_SWITCHING_PROTOCOLS
static final int SC_OK
static final int SC_CREATED
static final int SC_ACCEPTED
static final int SC_NON_AUTHORITATIVE_INFORMATION
static final int SC_NO_CONTENT
static final int SC_RESET_CONTENT
static final int SC_PARTIAL_CONTENT
static final int SC_MULTIPLE_CHOICES
static final int SC_MOVED_PERMANENTLY
static final int SC_MOVED_TEMPORARILY
SC_FOUND
が優先定義になっています。static final int SC_FOUND
static final int SC_SEE_OTHER
static final int SC_NOT_MODIFIED
static final int SC_USE_PROXY
Location
フィールドによって与えられたプロキシを介してリクエストされたリソースにアクセスしなければならない ことを示すステータスコード。 (305)static final int SC_TEMPORARY_REDIRECT
static final int SC_BAD_REQUEST
static final int SC_UNAUTHORIZED
static final int SC_PAYMENT_REQUIRED
static final int SC_FORBIDDEN
static final int SC_NOT_FOUND
static final int SC_METHOD_NOT_ALLOWED
Request-Line
で指定されたメソッドがRequest-URI
によって識別されるリソースで許可されていないことを示すステータスコード。 (405)static final int SC_NOT_ACCEPTABLE
static final int SC_PROXY_AUTHENTICATION_REQUIRED
static final int SC_REQUEST_TIMEOUT
static final int SC_CONFLICT
static final int SC_GONE
static final int SC_LENGTH_REQUIRED
Content-Length
が定義されていないためリクエストを処理できないことを示すステータスコード。 (411)static final int SC_PRECONDITION_FAILED
static final int SC_REQUEST_ENTITY_TOO_LARGE
static final int SC_REQUEST_URI_TOO_LONG
Request-URI
がサーバーが解釈できる長さよりも長いため、
サーバーがリクエストの処理を拒否していることを示すステータスコード。 (414)static final int SC_UNSUPPORTED_MEDIA_TYPE
static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE
static final int SC_EXPECTATION_FAILED
static final int SC_INTERNAL_SERVER_ERROR
static final int SC_NOT_IMPLEMENTED
static final int SC_BAD_GATEWAY
static final int SC_SERVICE_UNAVAILABLE
static final int SC_GATEWAY_TIMEOUT
static final int SC_HTTP_VERSION_NOT_SUPPORTED
void addCookie(Cookie cookie)
cookie
- クライアントに返されるCookieboolean containsHeader(String name)
name
- ヘッダー名true
、そうでない場合はfalse
String encodeURL(String url)
堅牢なセッショントラッキングのためにはサーブレットが発行するすべてのURLをこのメソッドに通す必要があります。 そうしなければCookieをサポートしていないブラウザではURLリライティングを使用できません。
URLが相対的な場合、常に現在のHttpServletRequestから相対的になります。
url
- エンコードされるURLIllegalArgumentException
- URLが不正な場合String encodeRedirectURL(String url)
sendRedirect(String)
メソッドで使用するためにエンコードします。
エンコードが不要な場合はURLをそのまま返します。
このメソッドの実装にはセッションIDをURLにエンコードする必要があるかどうかを判断するロジックが含まれています。
たとえば、ブラウザがCookieをサポートしている場合やセッショントラッキングがオフの場合はURLエンコーディングは不要です。
この決定を行うためのルールは通常のリンクをエンコードするかどうかを決めるために使用されるルールとは異なる可能性があるため、
このメソッドはencodeURL(String)
メソッドから切り離されています。
HttpServletResponse.sendRedirect
メソッドに送信されるすべてのURLをこのメソッドに通す必要があります。
そうしなければCookieをサポートしていないブラウザではURLリライティングを使用できません。
URLが相対的な場合、常に現在のHttpServletRequestから相対的になります。
url
- エンコードされるURLIllegalArgumentException
- URLが不正な場合sendRedirect(java.lang.String)
,
encodeUrl(java.lang.String)
@Deprecated String encodeUrl(String url)
encodeURL(String)
に置き換えられました。url
- エンコードされるURLIllegalArgumentException
- URLが不正な場合@Deprecated String encodeRedirectUrl(String url)
encodeRedirectURL(String)
に置き換えられました。url
- エンコードされるURLIllegalArgumentException
- URLが不正な場合void sendError(int sc, String msg) throws IOException
ウェブアプリケーションで渡されたステータスコードに対応するエラーページの宣言が行われていた場合、 提案されたmsgパラメータより優先的にそれが返され、msgパラメータは無視されるでしょう。
レスポンスがすでにコミットされていた場合、このメソッドはIllegalStateExceptionを投げます。 このメソッドを使用した後はレスポンスははコミットされたものとみなされるべきであり、書き込まれるべきでもありません。
sc
- エラーステータスコードmsg
- 説明のメッセージIOException
- I/Oエラーが発生したIllegalStateException
- このメソッドが呼び出される前にレスポンスがコミットされていたvoid sendError(int sc) throws IOException
レスポンスがすでにコミットされていた場合、このメソッドはIllegalStateExceptionを投げます。 このメソッドを使用した後はレスポンスははコミットされたものとみなされるべきであり、書き込まれるべきでもありません。
sc
- エラーステータスコードIOException
- I/Oエラーが発生したIllegalStateException
- このメソッドが呼び出される前にレスポンスがコミットされていたvoid sendRedirect(String location) throws IOException
SC_FOUND
302 (Found)に設定されます。
このメソッドは相対URLを受け入れることができ、サーブレットコンテナは相対URLを絶対URLに変換してからクライアントにレスポンスを送信するべきです。
先頭に'/'のない相対的なロケーションである場合、コンテナは現在のリクエストURIとの相対的なURLとして解釈します。
先頭に '/'のある相対的なロケーションである場合、コンテナはサーブレットコンテナのルートからの相対的なURLとして解釈します。
先頭に'/'が二つある相対的なロケーションである場合、コンテナはそれをネットワークパス参照として解釈します。(
RFC 3986: Uniform Resource Identifier (URI): 一般的構文, section 4.2
"相対的参照"を参照してください)
指定されたリダイレクト先のURLを使用してクライアントに一時的なリダイレクトレスポンスを送信し、バッファをクリアします。
レスポンスがすでにコミットされていた場合、このメソッドはIllegalStateExceptionを投げます。 このメソッドを使用した後はレスポンスははコミットされたものとみなされるべきであり、書き込まれるべきでもありません。
location
- リダイレクト先のURLIOException
- I/Oエラーが発生したIllegalStateException
- このメソッドが呼び出される前にレスポンスがコミットされていたvoid setDateHeader(String name, long date)
containsHeader
メソッドを使用できます。name
- ヘッダーに値を設定する名前date
- 割り当てられる日付値containsHeader(java.lang.String)
,
addDateHeader(java.lang.String, long)
void addDateHeader(String name, long date)
name
- ヘッダーに値を設定する名前date
- 追加される日付値setDateHeader(java.lang.String, long)
void setHeader(String name, String value)
containsHeader
メソッドを使用できます。name
- ヘッダーの名前value
- ヘッダーに追加する値、8bit文字列(octed string)の場合は RFC2047に従ってエンコードされている必要がある
(http://www.ietf.org/rfc/rfc2047.txt)containsHeader(java.lang.String)
,
addHeader(java.lang.String, java.lang.String)
void addHeader(String name, String value)
name
- ヘッダーの名前value
- ヘッダーに追加する値、8bit文字列(octed string)の場合は RFC2047に従ってエンコードされている必要がある
(http://www.ietf.org/rfc/rfc2047.txt)setHeader(java.lang.String, java.lang.String)
void setIntHeader(String name, int value)
containsHeader
メソッドを使用できます。name
- ヘッダーの名前value
- 割り当てられる整数containsHeader(java.lang.String)
,
addIntHeader(java.lang.String, int)
void addIntHeader(String name, int value)
name
- ヘッダーの名前value
- 割り当てられる整数setIntHeader(java.lang.String, int)
void setStatus(int sc)
このメソッドは、エラーがない場合のリターンステータスコード(たとえば、SC_OK
やSC_MOVED_TEMPORARILY
ステータスコードの場合)
を設定するために使用されます。
このメソッドを使用してエラーコードを設定してもコンテナのエラーページメカニズムは実行されないでしょう。
エラーがあり、呼び出し側がウェブアプリケーションで定義されたエラーページを呼び出したい場合は、
代わりにsendError(int, java.lang.String)
を使用する必要があります。
このメソッドはすべてのCookieとその他のレスポンスヘッダーをそのまま保持します。
有効なステータスコードは、2XX、3XX、4XX、5XXの範囲のコードです。 それ以外のステータスコードはコンテナ固有のものとして扱われます。
sc
- ステータスコードsendError(int, java.lang.String)
@Deprecated void setStatus(int sc, String sm)
setStatus(int)
を使用してください。
エラーと一緒に説明文を送るためにはsendError(int, String)
を使用してください。sc
- ステータスコードsm
- ステータスのメッセージint getStatus()
String getHeader(String name)
setHeader(java.lang.String, java.lang.String)
、addHeader(java.lang.String, java.lang.String)
、setDateHeader(java.lang.String, long)
、
addDateHeader(java.lang.String, long)
、setIntHeader(java.lang.String, int)
、addIntHeader(java.lang.String, int)
を介して設定または追加されたもののみをレスポンスヘッダーとしてみなします。name
- 値を返されるレスポンスヘッダーの名前Collection<String> getHeaders(String name)
setHeader(java.lang.String, java.lang.String)
、addHeader(java.lang.String, java.lang.String)
、setDateHeader(java.lang.String, long)
、
addDateHeader(java.lang.String, long)
、setIntHeader(java.lang.String, int)
、addIntHeader(java.lang.String, int)
を介して設定または追加されたもののみをレスポンスヘッダーとしてみなします。
Collection
に対するいかなる変更もHttpServletResponse
に影響を与えてはいけません。
name
- 値を返されるレスポンスヘッダーの名前Collection
Collection<String> getHeaderNames()
setHeader(java.lang.String, java.lang.String)
、addHeader(java.lang.String, java.lang.String)
、setDateHeader(java.lang.String, long)
、
addDateHeader(java.lang.String, long)
、setIntHeader(java.lang.String, int)
、addIntHeader(java.lang.String, int)
を介して設定または追加されたもののみをレスポンスヘッダーとしてみなします。
Collection
に対するいかなる変更もHttpServletResponse
に影響を与えてはいけません。
Collection
default void setTrailerFields(Supplier<Map<String,String>> supplier)
トレイラーヘッダーのフィールドの値はカンマで区切られたリストとして定義されています。 (RFC 7230のセクション3.2.2とセクション4.1.2を参照してください。)
サプライヤはレスポンスの内容を完了させるスレッド/コールの範囲内で呼び出されます。 通常、これはOutputStreamまたはWriterのclose()を呼び出す任意のスレッドになるでしょう。
RFC 7230のセクション4.1.2の規定に違反して実行されるトレーラーは無視されます。
RFCでは、提供されたマップの"トレイラー"レスポンスヘッダーのコンマで区切られたリストの値に含まれるすべてのキーの名前を要求しています。 アプリケーションにはこの要件が満たされていることを保証する責任があります。 これを怠ると相互運用性が損なわれる可能性があります。
supplier
- トレイラーヘッダーのサプライヤIllegalStateException
- レスポンスがコミットされた後に呼び出された、
もしくはプロトコルがHTTP 1.0であったりプロトコルがHTTP 1.1であってもチャンクエンコーディングでない場合など、
リクエストがトレーラーフィールドをサポートしていなかったCopyright © 1999-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms. Portions Copyright © 1999-2002 The Apache Software Foundation. Portions Copyright © 2017- @megascus. Translated by @megascus.