@Deprecated public class PostResubmitPreventHandler extends java.lang.Object implements HttpRequestHandler
HttpErrorResponseを送出する。
HTTPステータスコードには、BadRequestであることを示す400を設定し、
遷移先のパスにはsetForwardPathMapping(Map)で設定されたパスマッピングを元に設定する。setForwardPathMapping(Map)に設定された内容が以下表の場合、
リクエストIDがRW4444の場合は、遷移先のパスは/rw4_error.jspとなる。
リクエストIDがRW3333の場合は、遷移先のパスは/rw_error.jspとなる。
----------- ----------------------------- キー パス ----------- ----------------------------- R /r_error.jsp R1234 /r1234_error.jsp RW /rw_error.jsp RW4 /rw4_error.jsp ----------- -----------------------------ただし、multipartリクエストには未対応。 本ハンドラは、
NablarchTagHandlerの手前に設定すること。| 修飾子とタイプ | フィールドと説明 |
|---|---|
static java.lang.String |
POST_RESUBMIT_PREVENT_PARAM
非推奨です。
POST再送信防止を指示するパラメータ
|
| コンストラクタと説明 |
|---|
PostResubmitPreventHandler()
非推奨です。
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
protected PostRequest |
createPostRequest(HttpRequest request)
非推奨です。
POST時のリクエスト情報を生成する。
|
protected java.lang.String |
generatePostRequestKey(java.lang.String executionId)
非推奨です。
POST時のリクエスト情報をセッションスコープに格納する際に使用するキーを生成する。
|
protected java.lang.String |
generateRedirectPath(HttpRequest request)
非推奨です。
POST後のリダイレクトに使用するパスを生成する。
|
protected PostRequest |
getPostRequest(HttpRequest request,
ExecutionContext context)
非推奨です。
リダイレクト前にセッションスコープに格納したリクエスト情報を取得する。
|
HttpResponse |
handle(HttpRequest request,
ExecutionContext context)
非推奨です。
HTTPリクエストに対する処理を実行する。
|
protected boolean |
isPostRedirect(HttpRequest request)
非推奨です。
POST再送信防止が指示されたリクエストであるか否かを判定する。
|
protected boolean |
isRedirectOnPost(HttpRequest request)
非推奨です。
POST後にリダイレクトされたリクエストであるか否かを判定する。
|
void |
setForwardPathMapping(java.util.Map<java.lang.String,java.lang.String> forwardPathMapping)
非推奨です。
リクエストIDと遷移先パスのマッピングを設定する。
|
public static final java.lang.String POST_RESUBMIT_PREVENT_PARAM
public HttpResponse handle(HttpRequest request, ExecutionContext context)
[1]POST再送信防止が指示されたリクエストであるか否かを判定する。
POST再送信防止が指示されたリクエストである場合:
リクエスト情報をセッションスコープに格納し、
再度同じURIに対してリダイレクトする。
POST再送信防止が指示されたリクエストでない場合:
[2]に進む。
[2]POST後にリダイレクトされたリクエストであるか否かを判定する。
POST後にリダイレクトされたリクエストである場合:
セッションスコープに格納したリクエスト情報をリクエストに設定後、
後続のハンドラを呼び出す。
POST後にリダイレクトされたリクエストでない場合:
後続のハンドラを呼び出す。
各処理の詳細については、各メソッドのJavadocを参照。handle インタフェース内 Handler<HttpRequest,HttpResponse>handle インタフェース内 HttpRequestHandlerrequest - HTTPリクエストオブジェクトcontext - サーバサイド実行コンテキストオブジェクトprotected boolean isPostRedirect(HttpRequest request)
・HTTPメソッドがPOSTであること
・POST再送信防止を指示するパラメータ(POST_RESUBMIT_PREVENT_PARAM)が存在すること
request - リクエストprotected PostRequest createPostRequest(HttpRequest request)
・リクエストパラメータ ・マルチパート
request - リクエストprotected java.lang.String generatePostRequestKey(java.lang.String executionId)
nablarch_post_request_<実行時ID>
executionId - 実行時IDprotected java.lang.String generateRedirectPath(HttpRequest request)
redirect://<リクエストURI>?nablarch_post_redirect_id=<実行時ID>
request - リクエストprotected boolean isRedirectOnPost(HttpRequest request)
・HTTPメソッドがGETであること ・リダイレクト時に付与したnablarch_post_redirect_idパラメータが存在すること
request - リクエストprotected PostRequest getPostRequest(HttpRequest request, ExecutionContext context)
request - リクエストcontext - 実行コンテキストpublic void setForwardPathMapping(java.util.Map<java.lang.String,java.lang.String> forwardPathMapping)
forwardPathMapping - マッピング