クラス AbstractHandlerExceptionResolver
- 実装されているすべてのインターフェース:
Ordered, HandlerExceptionResolver
- 既知の直属サブクラス
AbstractHandlerMethodExceptionResolver, DefaultHandlerExceptionResolver, ResponseStatusExceptionResolver, SimpleMappingExceptionResolver
HandlerExceptionResolver 実装の抽象基本クラス。 リゾルバーが適用されるマッピングされたハンドラーとハンドラークラスをサポートし、Ordered インターフェースを実装します。
- 導入:
- 3.0
- 作成者:
- Arjen Poutsma, Juergen Hoeller, Sam Brannen
フィールドのサマリー
フィールドインターフェース Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidaddMappedHandlerClass(ClassSE<?> mappedHandlerClass) protected StringSEbuildLogMessage(ExceptionSE ex, jakarta.servlet.http.HttpServletRequest request) 特定のリクエストの処理中に発生した特定の例外のログメッセージを作成します。protected abstract @Nullable ModelAndViewdoResolveException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, @Nullable ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndViewを返します。configuredマップされたハンドラークラスを返します。intgetOrder()このオブジェクトの順序値を取得します。protected booleansetMappedHandlers(Set)、setMappedHandlerClasses(Class[])、またはsetMappedHandlerPredicate(Predicate)経由で登録されたハンドラーマッピングがあるかどうか。protected voidlogException(ExceptionSE ex, jakarta.servlet.http.HttpServletRequest request) "warnLogCategory"プロパティを介して警告ログが有効になっている場合、警告レベルで特定の例外をログに記録します。protected voidprepareResponse(ExceptionSE ex, jakarta.servlet.http.HttpServletResponse response) 例外的なケースの対応を準備します。protected voidpreventCaching(jakarta.servlet.http.HttpServletResponse response) 対応する HTTPCache-Control: no-storeヘッダーを設定することにより、レスポンスがキャッシュされないようにします。resolveException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, @Nullable ObjectSE handler, ExceptionSE ex) このリゾルバーが適用されることになっているかどうかを確認します(つまりvoidsetMappedHandlerClasses(ClassSE<?>... mappedHandlerClasses) この例外リゾルバーが適用されるクラスのセットを指定します。voidsetMappedHandlerPredicate(PredicateSE<ObjectSE> predicate) Predicateを使用して、この例外リゾルバーがどのハンドラーに適用されるかを決定します。これには、リクエストがマップされなかった場合のハンドラーがnullである場合も含まれます。voidsetMappedHandlers(SetSE<?> mappedHandlers) この例外リゾルバーが適用されるハンドラーのセットを指定します。voidsetOrder(int order) voidsetPreventResponseCaching(boolean preventResponseCaching) この例外リゾルバーによって解決されたビューの HTTP レスポンスキャッシュを防止するかどうかを指定します。voidsetWarnLogCategory(StringSE loggerName) 警告ログのログカテゴリを設定します。protected booleanshouldApplyTo(jakarta.servlet.http.HttpServletRequest request, @Nullable ObjectSE handler) このリゾルバーが特定のハンドラーに適用されることになっているかどうかを確認します。
フィールドの詳細
logger
protected final org.apache.commons.logging.Log loggerサブクラスで利用可能なロガー。
コンストラクターの詳細
AbstractHandlerExceptionResolver
public AbstractHandlerExceptionResolver()
メソッドの詳細
setOrder
public void setOrder(int order) getOrder
setMappedHandlerPredicate
Predicateを使用して、この例外リゾルバーがどのハンドラーに適用されるかを決定します。これには、リクエストがマップされなかった場合のハンドラーがnullである場合も含まれます。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
- 導入:
- 6.1.2
setMappedHandlers
この例外リゾルバーが適用されるハンドラーのセットを指定します。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
- 関連事項:
setMappedHandlerClasses
この例外リゾルバーが適用されるクラスのセットを指定します。リゾルバーは、指定された型のハンドラーにのみ適用されます。指定された型は、ハンドラーのインターフェースまたはスーパークラスである場合もあります。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
- 関連事項:
addMappedHandlerClass
- 導入:
- 6.1
getMappedHandlerClasses
configuredマップされたハンドラークラスを返します。setWarnLogCategory
警告ログのログカテゴリを設定します。名前は Commons Logging を介して基盤となるロガー実装に渡され、ロガーの構成に従ってログカテゴリとして解釈されます。nullまたは空の文字列が渡されると、警告ログはオフになります。デフォルトでは警告ロギングはありませんが、
DefaultHandlerExceptionResolverなどのサブクラスはそのデフォルトを変更できます。この設定を指定して、特定のカテゴリへの警告ログを有効にします。または、カスタムロギングのlogException(Exception, HttpServletRequest)メソッドをオーバーライドします。- 関連事項:
setPreventResponseCaching
public void setPreventResponseCaching(boolean preventResponseCaching) この例外リゾルバーによって解決されたビューの HTTP レスポンスキャッシュを防止するかどうかを指定します。デフォルトは
falseです。レスポンスキャッシュを抑制する HTTP レスポンスヘッダーを自動的に生成するには、これをtrueに切り替えます。resolveException
public @Nullable ModelAndView resolveException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, @Nullable ObjectSE handler, ExceptionSE ex) このリゾルバーが適用されることになっているかどうかを確認し(つまり、提供されたハンドラーが構成済みのハンドラーまたはハンドラークラスのいずれかに一致する場合)、doResolveException(HttpServletRequest, HttpServletResponse, Object, Exception)テンプレートメソッドに委譲します。- 次で指定:
- インターフェース
HandlerExceptionResolverのresolveException - パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンスhandler- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull(たとえば、マルチパート解決が失敗した場合)ex- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する
ModelAndView、または解決チェーンでのデフォルト処理の場合はnull
shouldApplyTo
protected boolean shouldApplyTo(jakarta.servlet.http.HttpServletRequest request, @Nullable ObjectSE handler) このリゾルバーが特定のハンドラーに適用されることになっているかどうかを確認します。デフォルトの実装では、構成されている handlerPredicate ハンドラーとハンドラークラス (存在する場合) に対してチェックが行われます。
- パラメーター:
request- 現在の HTTP リクエストhandler- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull(たとえば、マルチパート解決が失敗した場合)- 戻り値:
- これが解決されて、指定されたリクエストとハンドラーの例外の解決に進むかどうか
- 関連事項:
hasHandlerMappings
protected boolean hasHandlerMappings()setMappedHandlers(Set)、setMappedHandlerClasses(Class[])、またはsetMappedHandlerPredicate(Predicate)経由で登録されたハンドラーマッピングがあるかどうか。- 導入:
- 5.3
logException
"warnLogCategory"プロパティを介して警告ログが有効になっている場合、警告レベルで特定の例外をログに記録します。ログに記録する具体的なメッセージを判別するために、
buildLogMessage(Exception, HttpServletRequest)を呼び出します。- パラメーター:
ex- ハンドラーの実行中にスローされた例外request- 現在の HTTP リクエスト (メタデータの取得に役立ちます)- 関連事項:
buildLogMessage
特定のリクエストの処理中に発生した特定の例外のログメッセージを作成します。- パラメーター:
ex- ハンドラーの実行中にスローされた例外request- 現在の HTTP リクエスト (メタデータの取得に役立ちます)- 戻り値:
- 使用するログメッセージ
prepareResponse
例外的なケースの対応を準備します。"preventResponseCaching"プロパティが "true" に設定されている場合、デフォルトの実装ではレスポンスがキャッシュされません。- パラメーター:
ex- ハンドラーの実行中にスローされた例外response- 現在の HTTP レスポンス- 関連事項:
preventCaching
protected void preventCaching(jakarta.servlet.http.HttpServletResponse response) 対応する HTTPCache-Control: no-storeヘッダーを設定することにより、レスポンスがキャッシュされないようにします。- パラメーター:
response- 現在の HTTP レスポンス
doResolveException
protected abstract @Nullable ModelAndView doResolveException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, @Nullable ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndViewを返します。特定の例外チェックを適用するために、サブクラスでオーバーライドできます。このテンプレートメソッドは、このリゾルバーが適用されるかどうか ( "mappedHandlers" など) を確認した後に呼び出されるため、実装では実際の例外処理をそのまま続行できます。
- パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンスhandler- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull(たとえば、マルチパート解決が失敗した場合)ex- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する
ModelAndView、または解決チェーンでのデフォルト処理の場合はnull