public final class HttpResponseUtil
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
HttpResponseUtil.StatusConvertMode
HTTPレスポンスコードの変換方法。
|
Modifier and Type | Method and Description |
---|---|
static int |
chooseResponseStatusCode(HttpResponse res,
ServletExecutionContext ctx)
Nablarchのステータスコードから、
クライアントに返すレスポンスに使用するHTTPステータスコードを選択する。
ステータスコードの値は以下のルールに従って決定される。
1.
|
static boolean |
isAjaxRequest(ServletExecutionContext ctx)
このリクエストがXMLHttpRequestオブジェクト(いわゆるAjaxリクエスト)によるものか
どうかを判定する。
このメソッドでは、HTTPリクエスト中に含まれる X-Requested-With ヘッダを用いて
Ajaxリクエストの判定を行う。
|
static void |
setStatusConvertMode(ServletExecutionContext ctx,
HttpResponseUtil.StatusConvertMode mode)
NablarchのステータスコードをHTTPレスポンスコードに変換する際のモードを設定する。
|
public static int chooseResponseStatusCode(HttpResponse res, ServletExecutionContext ctx)
HttpResponseHandler
経由で設定する)が、CONVERT_ONLY_400_TO_200の場合、
以下のようにステータスコードのマッピングを行う。========================= ======================= Nablarchのステータスコード HTTPレスポンスコード ========================= ======================= 2xx (そのまま) 3xx (そのまま) 400 200 4xx(400以外) (そのまま) 5xx (そのまま) ========================= =======================HTTPレスポンスコードの変換モードが、CONVERT_ALL_TO_200の場合、 以下のようにステータスコードのマッピングを行う。
========================= ======================= 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"); // ヘッダ追加
res
- HttpResponsectx
- ServletExecutionContextpublic static boolean isAjaxRequest(ServletExecutionContext ctx)
ctx
- 実行コンテキストpublic static void setStatusConvertMode(ServletExecutionContext ctx, HttpResponseUtil.StatusConvertMode mode)
ctx
- 実行コンテキストmode
- 変換のモード