Package nablarch.fw.web.handler
Class HttpResponseUtil
java.lang.Object
nablarch.fw.web.handler.HttpResponseUtil
HTTP の応答時に使用するユーティリティ。
- Author:
- Koichi Asano
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
HTTPレスポンスコードの変換方法。 -
Method Summary
Modifier and TypeMethodDescriptionstatic int
Nablarchのステータスコードから、 クライアントに返すレスポンスに使用するHTTPステータスコードを選択する。 ステータスコードの値は以下のルールに従って決定される。static boolean
このリクエストがXMLHttpRequestオブジェクト(いわゆるAjaxリクエスト)によるものか どうかを判定する。 このメソッドでは、HTTPリクエスト中に含まれる X-Requested-With ヘッダを用いて Ajaxリクエストの判定を行う。static void
NablarchのステータスコードをHTTPレスポンスコードに変換する際のモードを設定する。
-
Method Details
-
chooseResponseStatusCode
Nablarchのステータスコードから、 クライアントに返すレスポンスに使用するHTTPステータスコードを選択する。 ステータスコードの値は以下のルールに従って決定される。 1. 通常の画面遷移の場合 HTTPレスポンスコードの変換モード(通常はHttpResponseHandler
経由で設定する)が、CONVERT_ONLY_400_TO_200の場合、 以下のようにステータスコードのマッピングを行う。
このマッピングは、1.5.x以降のデフォルトのマッピングである。
バリデーションエラー等を表すNablarchのステータスコード400番のみ、HTTPレスポンスコード200にマッピングされる。
========================= ======================= Nablarchのステータスコード HTTPレスポンスコード ========================= ======================= 2xx (そのまま) 3xx (そのまま) 400 200 4xx(400以外) (そのまま) 5xx (そのまま) ========================= =======================
HTTPレスポンスコードの変換モードが、CONVERT_ALL_TO_200の場合、 以下のようにステータスコードのマッピングを行う。
このマッピングは、1.4.x以前と同一のマッピングである。
========================= ======================= Nablarchのステータスコード HTTPレスポンスコード ========================= ======================= 2xx 200 3xx (そのまま) 4xx 200 5xx 200 ========================= =======================
2. Ajaxクライアントからのリクエストの場合 HTTPリクエストに ヘッダ X-Requested-With が設定されており、 かつその値が、"XMLHttpRequest" に一致する場合はHTTPレスポンスオブジェクトの ステータスコードをそのまま設定する。 X-Requested-Withヘッダとは、javascriptフレームワークが XMLHttpRequestオブジェクトを 使用してリクエストを送信する際に付与するカスタムHTTPヘッダであり、 主要なJavascriptフレームワークのほとんどでこれをサポートしている。 (prototype.js, jQuery, dojo, MooTools など) また、XMLHttpRequestを直接使用している場合でも、以下のサンプルの様なコードを 追加することで、簡単に対応させることができる。var xhr = getXmlHttpRequest(); // XMLHttpRequestオブジェクトを生成 xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); // ヘッダ追加
- Parameters:
res
- HttpResponsectx
- ServletExecutionContext- Returns:
- クライアントに返すレスポンスに使用するHTTPステータスコード
-
isAjaxRequest
このリクエストがXMLHttpRequestオブジェクト(いわゆるAjaxリクエスト)によるものか どうかを判定する。 このメソッドでは、HTTPリクエスト中に含まれる X-Requested-With ヘッダを用いて Ajaxリクエストの判定を行う。- Parameters:
ctx
- 実行コンテキスト- Returns:
- Ajaxリクエストであれば true を返す。
-
setStatusConvertMode
public static void setStatusConvertMode(ServletExecutionContext ctx, HttpResponseUtil.StatusConvertMode mode) NablarchのステータスコードをHTTPレスポンスコードに変換する際のモードを設定する。- Parameters:
ctx
- 実行コンテキストmode
- 変換のモード
-