@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
の手前に設定すること。Modifier and Type | Field and Description |
---|---|
static java.lang.String |
POST_RESUBMIT_PREVENT_PARAM
Deprecated.
POST再送信防止を指示するパラメータ
|
Constructor and Description |
---|
PostResubmitPreventHandler()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected PostRequest |
createPostRequest(HttpRequest request)
Deprecated.
POST時のリクエスト情報を生成する。
リクエスト情報として下記を取得する。
|
protected java.lang.String |
generatePostRequestKey(java.lang.String executionId)
Deprecated.
POST時のリクエスト情報をセッションスコープに格納する際に使用するキーを生成する。
キーの形式は下記の通り。
|
protected java.lang.String |
generateRedirectPath(HttpRequest request)
Deprecated.
POST後のリダイレクトに使用するパスを生成する。
パスの形式は下記の通り。
|
protected PostRequest |
getPostRequest(HttpRequest request,
ExecutionContext context)
Deprecated.
リダイレクト前にセッションスコープに格納したリクエスト情報を取得する。
取得できない場合はnullを返す。
POST後にリダイレクトされたリクエストを識別するパラメータ、 およびPOSTリクエストのリクエスト情報は、 ともに保持しているマップから削除する。 |
HttpResponse |
handle(HttpRequest request,
ExecutionContext context)
Deprecated.
HTTPリクエストに対する処理を実行する。
|
protected boolean |
isPostRedirect(HttpRequest request)
Deprecated.
POST再送信防止が指示されたリクエストであるか否かを判定する。
下記の条件をすべて満たす場合のみtrueを返す。
|
protected boolean |
isRedirectOnPost(HttpRequest request)
Deprecated.
POST後にリダイレクトされたリクエストであるか否かを判定する。
下記の条件をすべて満たす場合のみtrueを返す。
|
void |
setForwardPathMapping(java.util.Map<java.lang.String,java.lang.String> forwardPathMapping)
Deprecated.
リクエストIDと遷移先パスのマッピングを設定する。
Mapのキーにはリクエスト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
in interface Handler<HttpRequest,HttpResponse>
handle
in interface HttpRequestHandler
request
- 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
- マッピング