public class HttpErrorHandler extends java.lang.Object implements HttpRequestHandler
HttpResponse/HttpErrorResponse のHTTPエラーコードに対応した エラー画面に遷移させる。 また、実行時例外を捕捉し、システムエラー画面に遷移させる。
Modifier and Type | Field and Description |
---|---|
protected java.util.regex.Pattern |
writeFailureLogPattern
Result.Error の中で障害通知ログを出力する対象を表すステータスコード |
Constructor and Description |
---|
HttpErrorHandler() |
Modifier and Type | Method and Description |
---|---|
ResourceLocator |
getDefaultPageFor(int statusCode)
指定されたステータスコードに対するデフォルトページのコンテンツパスを返す。
|
HttpResponse |
handle(HttpRequest req,
ExecutionContext ctx)
HTTPリクエストに対する処理を実行する。
|
HttpErrorHandler |
setDefaultPage(java.lang.String statusCode,
java.lang.String contentPath)
レスポンスステータスコードごとのデフォルトページを設定する。
HttpResponseオブジェクトのボディ内容(contentPath/contentBody)が設定されていない場合、
ここでステータスコード毎に設定したデフォルトページがボディとしてレスポンスされる。
設定は後から設定した内容ほど優先される。
ステータスコードには1桁分のワイルドカードとして "." を使用することができる。
設定例::
|
HttpErrorHandler |
setDefaultPages(java.util.Map<java.lang.String,java.lang.String> defaultPages)
レスポンスステータスコードごとのデフォルトページを設定する。
|
void |
setWriteFailureLogPattern(java.lang.String writeFailureLogPattern)
handle(nablarch.fw.web.HttpRequest, nablarch.fw.ExecutionContext) で、Result.Error を補足した際に、
障害通知ログを出力する必要のあるステータスコードを正規表現で設定する。
ここで設定した正規表現が、Result.Error.getStatusCode() にマッチした場合のみ、
障害通知ログが出力され障害として検知される。
なお、本設定を省略した場合のデフォルト動作では、5([1-9][0-9]|0[012456789]) に一致するステータスコードが障害通知ログの出力対象となる。 |
protected java.util.regex.Pattern writeFailureLogPattern
Result.Error
の中で障害通知ログを出力する対象を表すステータスコードpublic HttpResponse handle(HttpRequest req, ExecutionContext ctx)
handle
in interface Handler<HttpRequest,HttpResponse>
handle
in interface HttpRequestHandler
req
- HTTPリクエストオブジェクトctx
- サーバサイド実行コンテキストオブジェクトpublic HttpErrorHandler setDefaultPage(java.lang.String statusCode, java.lang.String contentPath)
// デフォルトページ定義 setDefaultPage("303", "file:///www/docroot/redirecting.html"); setDefaultPage("4..", "servlet://jsp/errors/userError.jsp"); setDefaultPage("5..", "servlet://jsp/errors/systemError.jsp");デフォルトページの設定を行わない場合、 web.xmlに定義されているエラーページに遷移する。
statusCode
- ステータスコードのパターンcontentPath
- デフォルトページのコンテンツパスpublic HttpErrorHandler setDefaultPages(java.util.Map<java.lang.String,java.lang.String> defaultPages)
defaultPages
- デフォルトページ設定public ResourceLocator getDefaultPageFor(int statusCode)
statusCode
- ステータスコードpublic void setWriteFailureLogPattern(java.lang.String writeFailureLogPattern)
handle(nablarch.fw.web.HttpRequest, nablarch.fw.ExecutionContext)
で、Result.Error
を補足した際に、
障害通知ログを出力する必要のあるステータスコードを正規表現で設定する。
ここで設定した正規表現が、Result.Error.getStatusCode()
にマッチした場合のみ、
障害通知ログが出力され障害として検知される。
なお、本設定を省略した場合のデフォルト動作では、5([1-9][0-9]|0[012456789])
に一致するステータスコードが障害通知ログの出力対象となる。writeFailureLogPattern
- 障害通知対象のステータスコードを表す正規表現