クラス MappedInterceptor
- 実装されたすべてのインターフェース:
HandlerInterceptor
HandlerInterceptor
をラップし、URL パターンを使用して、指定されたリクエストに適用されるかどうかを判断します。 パターンマッチングは、PathMatcher
または解析された PathPattern
を使用して実行できます。構文はほぼ同じですが、後者の方が Web での使用に適しており、より効率的です。選択は、解決されたString
lookupPath または解析されたRequestPath
の存在によって決まります。これは、現在のリクエストに一致した HandlerMapping
に依存します。
MappedInterceptor
は、型 MappedInterceptor
の Bean を検出し、それに直接登録されているインターセプターがこの型であるかどうかをチェックする AbstractHandlerMethodMapping
のサブクラスによってサポートされます。
- 導入:
- 3.0
- 作成者:
- Keith Donald, Rossen Stoyanchev, Brian Clozel
コンストラクターのサマリー
コンストラクターコンストラクター説明MappedInterceptor
(StringSE[] includePatterns, StringSE[] excludePatterns, WebRequestInterceptor interceptor) MappedInterceptor
(StringSE[] includePatterns, StringSE[] excludePatterns, HandlerInterceptor interceptor) パーサーが提供されていないMappedInterceptor(String[], String[], HandlerInterceptor, PathPatternParser)
のバリアント。MappedInterceptor
(StringSE[] includePatterns, StringSE[] excludePatterns, HandlerInterceptor interceptor, PathPatternParser parser) マッピングのターゲットインターセプターとともに、指定された包含パターンと除外パターンを使用してインスタンスを作成します。MappedInterceptor
(StringSE[] includePatterns, WebRequestInterceptor interceptor) MappedInterceptor
(StringSE[] includePatterns, HandlerInterceptor interceptor) インクルードパターンのみのMappedInterceptor(String[], String[], HandlerInterceptor, PathPatternParser)
のバリアント。メソッドのサマリー
修飾子と型メソッド説明void
afterCompletion
(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) リクエスト処理の完了後、つまりビューのレンダリング後のコールバック。StringSE[]
このインターセプタがマッピングされている除外パスパターンを取得します。StringSE[]
このインターセプタがマッピングされているインクルードパスパターンを取得します。一致した場合に呼び出すターゲットHandlerInterceptor
。構成された PathMatcher を取得します。StringSE[]
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。boolean
matches
(HttpServletRequestEE request) このインターセプターがリクエストにマップされているかどうかを確認します。boolean
matches
(StringSE lookupPath, PathMatcher pathMatcher) 使用すべきではありません。5.3 現在、matches(HttpServletRequest)
を推奨void
postHandle
(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ModelAndView modelAndView) ハンドラーの実行が成功した後のインターセプトポイント。boolean
preHandle
(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler) ハンドラーの実行前のインターセプトポイント。void
setPathMatcher
(PathMatcher pathMatcher) URL パスを包含および除外パターンと照合するために使用するように PathMatcher を構成します。
コンストラクターの詳細
MappedInterceptor
public MappedInterceptor(@Nullable StringSE[] includePatterns, @Nullable StringSE[] excludePatterns, HandlerInterceptor interceptor, @Nullable PathPatternParser parser) マッピングのターゲットインターセプターとともに、指定された包含パターンと除外パターンを使用してインスタンスを作成します。- パラメーター:
includePatterns
- リクエストが一致する必要があるパターン、またはすべてのパスに一致する場合は nullexcludePatterns
- リクエストが一致してはならないパターンinterceptor
- ターゲットインターセプターparser
- パターンをPathPattern
に事前解析するために使用するパーサー。提供されていない場合、PathPatternParser.defaultInstance
が使用されます。- 導入:
- 5.3
MappedInterceptor
インクルードパターンのみのMappedInterceptor(String[], String[], HandlerInterceptor, PathPatternParser)
のバリアント。MappedInterceptor
public MappedInterceptor(@Nullable StringSE[] includePatterns, @Nullable StringSE[] excludePatterns, HandlerInterceptor interceptor) パーサーが提供されていないMappedInterceptor(String[], String[], HandlerInterceptor, PathPatternParser)
のバリアント。MappedInterceptor
MappedInterceptor
public MappedInterceptor(@Nullable StringSE[] includePatterns, @Nullable StringSE[] excludePatterns, WebRequestInterceptor interceptor)
メソッドの詳細
getPathPatterns
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。6.1 以降、getIncludePathPatterns()
を推奨このインターセプタがマッピングされているインクルードパスパターンを取得します。getIncludePathPatterns
このインターセプタがマッピングされているインクルードパスパターンを取得します。- 導入:
- 6.1
- 関連事項:
getExcludePathPatterns
このインターセプタがマッピングされている除外パスパターンを取得します。- 導入:
- 6.1
- 関連事項:
getInterceptor
一致した場合に呼び出すターゲットHandlerInterceptor
。setPathMatcher
URL パスを包含および除外パターンと照合するために使用するように PathMatcher を構成します。これは、カスタマイズされた
AntPathMatcher
またはカスタム PathMatcher が必要な場合にのみ使用する必要がある高度なプロパティです。デフォルトでは、これは
AntPathMatcher
です。注 :
PathMatcher
を設定すると、解析されたRequestPath
が使用可能な場合でも、文字列パターンマッチングの使用が強制されます。getPathMatcher
構成された PathMatcher を取得します。matches
このインターセプターがリクエストにマップされているかどうかを確認します。リクエストマッピングパスは、外部で解決されている必要があります。クラスレベルの Javadoc も参照してください。
- パラメーター:
request
- 一致するリクエスト- 戻り値:
- インターセプターをリクエストに適用する必要がある場合は
true
matches
使用すべきではありません。5.3 現在、matches(HttpServletRequest)
を推奨指定されたルックアップパスに一致するものがあるかどうかを確認します。- パラメーター:
lookupPath
- 現在のリクエストパスpathMatcher
- パスパターンマッチング用のパスマッチャー- 戻り値:
- インターセプターが特定のリクエストパスに適用される場合は
true
preHandle
public boolean preHandle(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler) throws ExceptionSE インターフェースからコピーされた説明:HandlerInterceptor
ハンドラーの実行前のインターセプトポイント。HandlerMapping が適切なハンドラーオブジェクトを決定した後、HandlerAdapter がハンドラーを呼び出す前に呼び出されます。DispatcherServlet は、任意の数のインターセプターで構成される実行チェーンでハンドラーを処理し、ハンドラー自体を最後に処理します。このメソッドを使用すると、各インターセプターはチェーンの実行を中止することを決定でき、通常は HTTP エラーを送信するか、カスタムレスポンスを作成します。
注意 : 非同期リクエスト処理には特別な考慮事項が適用されます。詳細については、
AsyncHandlerInterceptor
を参照してください。デフォルトの実装は
true
を返します。- 次で指定:
- インターフェース
HandlerInterceptor
のpreHandle
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 型および / またはインスタンス評価のために、実行するために選択されたハンドラー- 戻り値:
- 実行チェーンが次のインターセプターまたはハンドラー自体を続行する必要がある場合は、
true
。そうでない場合、DispatcherServlet は、このインターセプターがすでにレスポンス自体を処理していると想定します。 - 例外:
ExceptionSE
- エラーの場合
postHandle
public void postHandle(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, @Nullable ModelAndView modelAndView) throws ExceptionSE インターフェースからコピーされた説明:HandlerInterceptor
ハンドラーの実行が成功した後のインターセプトポイント。HandlerAdapter が実際にハンドラーを呼び出した後、DispatcherServlet がビューをレンダリングする前に呼び出されます。指定された ModelAndView を介して、追加のモデルオブジェクトをビューに公開できます。DispatcherServlet は、任意の数のインターセプターで構成される実行チェーンのハンドラーを処理します。ハンドラー自体は最後にあります。このメソッドを使用すると、各インターセプターは実行を後処理でき、実行チェーンの逆順で適用されます。
注意 : 非同期リクエスト処理には特別な考慮事項が適用されます。詳細については、
AsyncHandlerInterceptor
を参照してください。デフォルトの実装は空です。
- 次で指定:
- インターフェース
HandlerInterceptor
のpostHandle
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 型やインスタンスの検査のために、非同期実行を開始したハンドラー(またはHandlerMethod
)modelAndView
- ハンドラーが返したModelAndView
(null
にすることもできます)- 例外:
ExceptionSE
- エラーの場合
afterCompletion
public void afterCompletion(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, @Nullable ExceptionSE ex) throws ExceptionSE インターフェースからコピーされた説明:HandlerInterceptor
リクエスト処理の完了後、つまりビューのレンダリング後のコールバック。ハンドラー実行の結果で呼び出されるため、適切なリソースのクリーンアップが可能になります。メモ: このインターセプターの
preHandle
メソッドが正常に完了し、true
を返した場合にのみ呼び出されます!postHandle
メソッドと同様に、このメソッドはチェーンの各インターセプターで逆の順序で呼び出されるため、最初のインターセプターが最後に呼び出されます。注意 : 非同期リクエスト処理には特別な考慮事項が適用されます。詳細については、
AsyncHandlerInterceptor
を参照してください。デフォルトの実装は空です。
- 次で指定:
- インターフェース
HandlerInterceptor
のafterCompletion
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 型やインスタンスの検査のために、非同期実行を開始したハンドラー(またはHandlerMethod
)ex
- ハンドラーの実行時にスローされる例外(ある場合)。これには、例外リゾルバーを介して処理された例外は含まれません- 例外:
ExceptionSE
- エラーの場合
getIncludePathPatterns()
を推奨