public interface HttpServletResponse extends ServletResponse
ServletResponse
インターフェースを拡張して、レスポンスを送信する際に HTTP 固有の機能を提供します。例: HTTP ヘッダーと Cookie にアクセスするメソッドがあります。 サーブレットコンテナーは HttpServletResponse
オブジェクトを作成し、それを引数としてサーブレットのサービスメソッド(doGet
、doPost
など)に渡します。
ServletResponse
修飾子と型 | フィールドと説明 |
---|---|
static int | SC_ACCEPTED リクエストが処理のために受け入れられたが、完了しなかったことを示すステータスコード (202)。 |
static int | SC_BAD_GATEWAY HTTP サーバーがプロキシまたはゲートウェイとして動作しているときに問い合わせたサーバーから無効なレスポンスを受信したことを示すステータスコード (502)。 |
static int | SC_BAD_REQUEST クライアントから送信されたリクエストが構文的に正しくないことを示すステータスコード (400)。 |
static int | SC_CONFLICT リソースの現在の状態と競合するため、リクエストを完了できなかったことを示すステータスコード (409)。 |
static int | SC_CONTINUE クライアントが続行できることを示すステータスコード (100)。 |
static int | SC_CREATED リクエストが成功し、サーバー上に新しいリソースを作成したことを示すステータスコード (201)。 |
static int | SC_EXPECTATION_FAILED サーバーが Expect リクエストヘッダーで指定された期待に応えられなかったことを示すステータスコード (417)。 |
static int | SC_FORBIDDEN サーバーがリクエストを理解したが、それを実行することを拒否したことを示すステータスコード (403)。 |
static int | SC_FOUND リソースが一時的に別の URI にあることを示すステータスコード (302)。 |
static int | SC_GATEWAY_TIMEOUT ゲートウェイまたはプロキシとして機能している間に、サーバーがアップストリームサーバーからタイムリーなレスポンスを受信しなかったことを示すステータスコード (504)。 |
static int | SC_GONE リソースがサーバーで使用できなくなり、転送アドレスが不明であることを示すステータスコード (410)。 |
static int | SC_HTTP_VERSION_NOT_SUPPORTED サーバーがリクエストメッセージで使用された HTTP プロトコルバージョンをサポートしていないか、サポートを拒否していることを示すステータスコード (505)。 |
static int | SC_INTERNAL_SERVER_ERROR HTTP サーバー内部のエラーを示すステータスコード (500)。リクエストの実行を妨げました。 |
static int | SC_LENGTH_REQUIRED 定義された Content-Length なしではリクエストを処理できないことを示すステータスコード (411)。 |
static int | SC_METHOD_NOT_ALLOWED Request-Line で指定されたメソッドが Request-URI で識別されるリソースに対して許可されていないことを示すステータスコード (405)。 |
static int | SC_MOVED_PERMANENTLY リソースが永続的に新しい場所に移動し、今後の参照ではリクエストで新しい URI を使用する必要があることを示すステータスコード (301)。 |
static int | SC_MOVED_TEMPORARILY リソースが一時的に別の場所に移動したが、今後の参照ではリソースにアクセスするために元の URI を使用する必要があることを示すステータスコード (302)。 |
static int | SC_MULTIPLE_CHOICES リクエストされたリソースが、それぞれ固有の場所を持つ表現のセットのいずれかに対応することを示すステータスコード (300)。 |
static int | SC_NO_CONTENT リクエストは成功したが、返す新しい情報がないことを示すステータスコード (204)。 |
static int | SC_NON_AUTHORITATIVE_INFORMATION クライアントから提示されたメタ情報がサーバーからのものではないことを示すステータスコード (203)。 |
static int | SC_NOT_ACCEPTABLE リクエストで識別されたリソースが、リクエストで送信された受け入れヘッダーに従って受け入れられないコンテンツ特性を持つレスポンスエンティティを生成できるだけであることを示すステータスコード (406)。 |
static int | SC_NOT_FOUND リクエストされたリソースが利用できないことを示すステータスコード (404)。 |
static int | SC_NOT_IMPLEMENTED HTTP サーバーがリクエストを満たすために必要な機能をサポートしていないことを示すステータスコード (501)。 |
static int | SC_NOT_MODIFIED 条件付き GET 操作で、リソースが利用可能であり、変更されていないことが検出されたことを示すステータスコード (304)。 |
static int | SC_OK リクエストが正常に成功したことを示すステータスコード (200)。 |
static int | SC_PARTIAL_CONTENT サーバーがリソースに対する部分的な GET リクエストを実行したことを示すステータスコード (206)。 |
static int | SC_PAYMENT_REQUIRED ステータスコード (402) は将来の使用のために予約されています。 |
static int | SC_PRECONDITION_FAILED 1 つ以上のリクエストヘッダーフィールドで指定された前提条件がサーバーでテストされたときに false と評価されたことを示すステータスコード (412)。 |
static int | SC_PROXY_AUTHENTICATION_REQUIRED クライアントが最初にプロキシで自身を認証する必要があることを示すステータスコード (407)。 |
static int | SC_REQUEST_ENTITY_TOO_LARGE リクエストエンティティがサーバーが処理できる、または処理できるよりも大きいため、サーバーがリクエストの処理を拒否していることを示すステータスコード (413)。 |
static int | SC_REQUEST_TIMEOUT サーバーが待機する準備ができている時間内にクライアントがリクエストを生成しなかったことを示すステータスコード (408)。 |
static int | SC_REQUEST_URI_TOO_LONG Request-URI がサーバーが解釈するよりも長いため、サーバーがリクエストの処理を拒否していることを示すステータスコード (414)。 |
static int | SC_REQUESTED_RANGE_NOT_SATISFIABLE サーバーがリクエストされたバイト範囲を提供できないことを示すステータスコード (416)。 |
static int | SC_RESET_CONTENT エージェントは、リクエストが送信される原因となったドキュメントビューをリセットする必要があることを示すステータスコード (205)。 |
static int | SC_SEE_OTHER リクエストへのレスポンスが別の URI で見つかることを示すステータスコード (303)。 |
static int | SC_SERVICE_UNAVAILABLE HTTP サーバーが一時的にオーバーロードになっており、リクエストを処理できないことを示すステータスコード (503)。 |
static int | SC_SWITCHING_PROTOCOLS サーバーが Upgrade ヘッダーに従ってプロトコルを切り替えていることを示すステータスコード (101)。 |
static int | SC_TEMPORARY_REDIRECT リクエストされたリソースが一時的に別の URI にあることを示すステータスコード (307)。 |
static int | SC_UNAUTHORIZED リクエストに HTTP 認証が必要であることを示すステータスコード (401)。 |
static int | SC_UNSUPPORTED_MEDIA_TYPE リクエストのエンティティが、リクエストされたメソッドのリクエストされたリソースでサポートされていない形式であるため、サーバーがリクエストのサービスを拒否していることを示すステータスコード (415)。 |
static int | SC_USE_PROXY Location フィールドで指定されたプロキシを介して、リクエストされたリソースにアクセスする必要があることを示すステータスコード (305)。 |
修飾子と型 | メソッドと説明 |
---|---|
void | addCookie(Cookie cookie) 指定した Cookie をレスポンスに追加します。 |
void | addDateHeader(StringSE name, long date) 指定された名前と日付値を持つレスポンスヘッダーを追加します。 |
void | addHeader(StringSE name, StringSE value) 指定された名前と値でレスポンスヘッダーを追加します。 |
void | addIntHeader(StringSE name, int value) 指定された名前と整数値を持つレスポンスヘッダーを追加します。 |
boolean | containsHeader(StringSE name) 名前付きレスポンスヘッダーがすでに設定されているかどうかを示すブール値を返します。 |
StringSE | encodeRedirectUrl(StringSE url) 使用すべきではありません。 バージョン 2.1 では、代わりに encodeRedirectURL(String url)を使用します |
StringSE | encodeRedirectURL(StringSE url) 指定された URL を sendRedirect メソッドで使用するためにエンコードします。エンコードが不要な場合は、URL を変更せずに返します。 |
StringSE | encodeUrl(StringSE url) 使用すべきではありません。 バージョン 2.1 では、代わりに encodeURL(String url)を使用します |
StringSE | encodeURL(StringSE url) セッション ID を含めることにより、指定された URL をエンコードします。エンコードが不要な場合は、URL を変更せずに返します。 |
StringSE | getHeader(StringSE name) 指定された名前のレスポンスヘッダーの値を取得します。 |
CollectionSE<StringSE> | getHeaderNames() このレスポンスのヘッダーの名前を取得します。 |
CollectionSE<StringSE> | getHeaders(StringSE name) 指定された名前のレスポンスヘッダーの値を取得します。 |
int | getStatus() このレスポンスの現在のステータスコードを取得します。 |
default SupplierSE<MapSE<StringSE, StringSE>> | getTrailerFields() トレーラーヘッダーのサプライヤーを取得します。 |
void | sendError(int sc) 指定されたステータスコードを使用してエラーレスポンスをクライアントに送信し、バッファをクリアします。 |
void | sendError(int sc, StringSE msg) 指定されたステータスを使用してエラーレスポンスをクライアントに送信し、バッファをクリアします。 |
void | sendRedirect(StringSE location) 指定されたリダイレクトロケーション URL を使用して一時的なリダイレクトレスポンスをクライアントに送信し、バッファーをクリアします。 |
void | setDateHeader(StringSE name, long date) 指定された名前と日付値でレスポンスヘッダーを設定します。 |
void | setHeader(StringSE name, StringSE value) 指定された名前と値でレスポンスヘッダーを設定します。 |
void | setIntHeader(StringSE name, int value) 指定された名前と整数値でレスポンスヘッダーを設定します。 |
void | setStatus(int sc) このレスポンスのステータスコードを設定します。 |
void | setStatus(int sc, StringSE sm) 使用すべきではありません。 バージョン 2.1 では、メッセージパラメーターの意味があいまいです。ステータスコードを設定するには setStatus(int) を使用し、説明付きのエラーを送信するには sendError(int, String) を使用します。このレスポンスのステータスコードとメッセージを設定します。 |
default void | setTrailerFields(SupplierSE<MapSE<StringSE, StringSE>> 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
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
Location
フィールドによって与えられるべきです(SHOULD)。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
- Cookie をクライアントに返す boolean containsHeader(StringSE name)
name
- ヘッダー名 true
。それ以外の場合は false
StringSE encodeURL(StringSE url)
堅牢なセッショントラッキングを行うには、サーブレットが発行するすべての URL をこのメソッドで実行する必要があります。そうしないと、Cookie をサポートしないブラウザーで URL 書き換えを使用できません。
URL が相対である場合、常に現在の HttpServletRequest に対して相対的です。
url
- エンコードされる URL。IllegalArgumentExceptionSE
- URL が有効でない場合 StringSE encodeRedirectURL(StringSE url)
sendRedirect
メソッドで使用するためにエンコードします。エンコードが不要な場合は、URL を変更せずに返します。このメソッドの実装には、URL でセッション ID をエンコードする必要があるかどうかを判断するロジックが含まれています。例: ブラウザーが Cookie をサポートしている場合、またはセッショントラッキングがオフになっている場合、URL エンコードは不要です。この決定を行うための規則は、通常のリンクをエンコードするかどうかを決定するために使用される規則とは異なる可能性があるため、このメソッドは encodeURL
メソッドから分離されています。HttpServletResponse.sendRedirect
メソッドに送信されるすべての URL は、このメソッドを介して実行する必要があります。そうしないと、Cookie をサポートしないブラウザーで URL 書き換えを使用できません。
URL が相対である場合、常に現在の HttpServletRequest に対して相対的です。
url
- エンコードされる URL。IllegalArgumentExceptionSE
- URL が有効でない場合 sendRedirect(java.lang.String)
, encodeUrl(java.lang.String)
@DeprecatedSE StringSE encodeUrl(StringSE url)
url
- エンコードされる URL。IllegalArgumentExceptionSE
- URL が有効でない場合 @DeprecatedSE StringSE encodeRedirectUrl(StringSE url)
url
- エンコードされる URL。IllegalArgumentExceptionSE
- URL が有効でない場合 void sendError(int sc, StringSE msg) throws IOExceptionSE
指定されたステータスを使用してクライアントにエラーレスポンスを送信し、バッファをクリアします。サーバーはデフォルトで、指定されたメッセージを含む HTML 形式のサーバーエラーページのように見えるレスポンスを作成し、コンテンツ型を "text/html" に設定します。呼び出し元は、現在のレスポンスのエンコードとコンテンツ型に関して安全であることを確認するために、メッセージをエスケープまたは再エンコードする責任を負いません。安全性のこの側面は、メッセージを含むエラーページを生成するため、コンテナーの責任です。サーバーは Cookie を保持し、エラーページを有効なレスポンスとして提供するために必要なヘッダーをクリアまたは更新する場合があります。
渡されたステータスコードに対応する Web アプリケーションのエラーページ宣言が行われた場合、提案された msg パラメーターよりも優先して返され、msg パラメーターは無視されます。
レスポンスがすでにコミットされている場合、このメソッドは IllegalStateException をスローします。このメソッドを使用した後、レスポンスはコミットされたと見なされるべきであり、書き込まれるべきではありません。
sc
- エラー状態コード msg
- 説明的なメッセージ IOExceptionSE
- 入力または出力の例外が発生した場合 IllegalStateExceptionSE
- レスポンスがコミットされていた場合 void sendError(int sc) throws IOExceptionSE
レスポンスがすでにコミットされている場合、このメソッドは IllegalStateException をスローします。このメソッドを使用した後、レスポンスはコミットされたと見なされるべきであり、書き込まれるべきではありません。
sc
- エラー状態コード IOExceptionSE
- 入力または出力の例外が発生した場合 IllegalStateExceptionSE
- このメソッド呼び出しの前にレスポンスがコミットされた場合 void sendRedirect(StringSE location) throws IOExceptionSE
SC_FOUND
302(Found)に設定されます。このメソッドは相対 URL を受け入れることができます。サーブレットコンテナーは、レスポンスをクライアントに送信する前に相対 URL を絶対 URL に変換する必要があります。場所が先頭に "/" のない相対的な場所である場合、コンテナーは現在のリクエスト URI に相対的であると解釈します。ロケーションが先頭に "/" を付けた相対位置である場合、コンテナーはサーブレットコンテナールートに対する相対位置として解釈します。場所が 2 つの先頭 "/" で相対的な場合、コンテナーはそれをネットワークパス参照として解釈します(RFC 3986: ユニフォームリソース識別子 (URI): 汎用構文のセクション 4.2「相対参照」を参照)。レスポンスがすでにコミットされている場合、このメソッドは IllegalStateException をスローします。このメソッドを使用した後、レスポンスはコミットされたと見なされるべきであり、書き込まれるべきではありません。
location
- リダイレクト場所の URLIOExceptionSE
- 入力または出力の例外が発生した場合 IllegalStateExceptionSE
- レスポンスがコミットされた場合、または部分的な URL が指定されていて、有効な URL に変換できない場合 void setDateHeader(StringSE name, long date)
containsHeader
メソッドは、値を設定する前にヘッダーの存在をテストするために使用できます。name
- 設定するヘッダーの名前 date
- 割り当てられた日付値 containsHeader(java.lang.String)
, addDateHeader(java.lang.String, long)
void addDateHeader(StringSE name, long date)
name
- 設定するヘッダーの名前 date
- 追加の日付値 setDateHeader(java.lang.String, long)
void setHeader(StringSE name, StringSE value)
containsHeader
メソッドは、値を設定する前にヘッダーの存在をテストするために使用できます。name
- ヘッダーの名前 value
- ヘッダー値にオクテット文字列が含まれる場合、RFC 2047 に従ってエンコードする必要があります (http://www.ietf.org/rfc/rfc2047.txt)containsHeader(java.lang.String)
, addHeader(java.lang.String, java.lang.String)
void addHeader(StringSE name, StringSE value)
name
- ヘッダーの名前 value
- 追加のヘッダー値オクテット文字列を含む場合、RFC 2047 に従ってエンコードする必要があります (http://www.ietf.org/rfc/rfc2047.txt)setHeader(java.lang.String, java.lang.String)
void setIntHeader(StringSE name, int value)
containsHeader
メソッドは、値を設定する前にヘッダーの存在をテストするために使用できます。name
- ヘッダーの名前 value
- 割り当てられた整数値 containsHeader(java.lang.String)
, addIntHeader(java.lang.String, int)
void addIntHeader(StringSE name, int value)
name
- ヘッダーの名前 value
- 割り当てられた整数値 setIntHeader(java.lang.String, int)
void setStatus(int sc)
このメソッドは、エラーがない場合(たとえば、SC_OK または SC_MOVED_TEMPORARILY ステータスコード)に戻りステータスコードを設定するために使用されます。
このメソッドを使用してエラーコードを設定すると、コンテナーのエラーページメカニズムはトリガーされません。エラーが発生し、呼び出し元が Web アプリケーションで定義されたエラーページを呼び出す場合は、代わりに sendError(int, java.lang.String)
を使用する必要があります。
このメソッドは、Cookie およびその他のレスポンスヘッダーを保持します。
有効なステータスコードは、2XX、3XX、4XX、5XX の範囲のものです。他のステータスコードは、コンテナー固有として扱われます。
sc
- ステータスコード sendError(int, java.lang.String)
@DeprecatedSE void setStatus(int sc, StringSE sm)
setStatus(int)
を使用し、説明付きのエラーを送信するには sendError(int, String)
を使用します。このレスポンスのステータスコードとメッセージを設定します。sc
- ステータスコード sm
- ステータスメッセージ int getStatus()
StringSE getHeader(StringSE 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
- 値を返すレスポンスヘッダーの名前 CollectionSE<StringSE> getHeaders(StringSE 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
CollectionSE<StringSE> 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(SupplierSE<MapSE<StringSE,StringSE>> supplier)
トレーラーヘッダーフィールド値は、カンマ区切りリストとして定義されます(RFC 7230 のセクション 3.2.2 およびセクション 4.1.2 を参照)。
サプライヤーは、レスポンスコンテンツが完了するスレッド / 呼び出しの範囲内で呼び出されます。通常、これは、出力ストリームまたはライターで close() を呼び出すスレッドになります。
RFC 7230 のセクション 4.1.2 の規定に反して実行されるトレーラーは無視されます。
RFC では、指定された Map に含まれるすべてのキーの名前が、"Trailer" レスポンスヘッダーの値であるコンマ区切りリストに含まれている必要があります。アプリケーションは、この要件が満たされていることを確認する責任があります。そうしないと、相互運用性の障害につながる可能性があります。
supplier
- トレーラーヘッダーのサプライヤー IllegalStateExceptionSE
- レスポンスがコミットされた後に呼び出されるか、リクエストでトレーラがサポートされていない場合、たとえば、基になるプロトコルが HTTP 1.0 であるか、レスポンスが HTTP 1.1 のチャンクエンコーディングではありません。default SupplierSE<MapSE<StringSE,StringSE>> getTrailerFields()
Supplier
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.