クラス UrlHandlerFilter
java.lang.ObjectSE
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
org.springframework.web.filter.UrlHandlerFilter
- 実装されたすべてのインターフェース:
FilterEE
、Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、EnvironmentAware
、EnvironmentCapable
、ServletContextAware
URL を変更し、変更を適用するためにリクエストをリダイレクトまたはラップする
Filter
EE。インスタンスを作成するには、以下を使用できます。
UrlHandlerFilter filter = UrlHandlerFilter .trailingSlashHandler("/path1/**").redirect(HttpStatus.PERMANENT_REDIRECT) .trailingSlashHandler("/path2/**").wrapRequest() .build();
この Filter
は、ForwardedHeaderFilter
の後、セキュリティフィルターの前に並べ替える必要があります。
- 導入:
- 6.2
- 作成者:
- Rossen Stoyanchev
ネストされたクラスのサマリー
ネストされたクラスフィールドサマリー
クラス org.springframework.web.filter.OncePerRequestFilter から継承されたフィールド
ALREADY_FILTERED_SUFFIX
方法の概要
修飾子と型メソッド説明protected void
doFilterInternal
(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE chain) doFilter
と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。protected boolean
ディスパッチャー型jakarta.servlet.DispatcherType.ASYNC
は、1 つのリクエストの過程で複数のスレッドでフィルターを呼び出すことができることを意味します。protected boolean
サーブレットコンテナーがweb.xml
にマッピングされたときなどのエラーディスパッチをフィルタリングするかどうか。trailingSlashHandler
(StringSE... pathPatterns) 末尾にスラッシュが付いた URL のハンドラーを追加してビルダーを作成します。クラス org.springframework.web.filter.OncePerRequestFilter から継承されたメソッド
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter
クラス org.springframework.web.filter.GenericFilterBean から継承されたメソッド
addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
メソッドの詳細
shouldNotFilterAsyncDispatch
protected boolean shouldNotFilterAsyncDispatch()クラスからコピーされた説明:OncePerRequestFilter
ディスパッチャー型jakarta.servlet.DispatcherType.ASYNC
は、単一のリクエスト中に複数のスレッドでフィルターを呼び出すことができることを意味します。一部のフィルターは最初のスレッドをフィルターするだけで済みますが (たとえば、リクエストの折り返し)、その他のフィルターは、スレッドローカルの設定や最後に最終処理を実行する場合など、各追加スレッドで少なくとも 1 回呼び出す必要がある場合があります。フィルターは、
web.xml
を介して特定のディスパッチャー型を処理するように、またはServletContext
を介して Java で処理するようにマップできますが、サーブレットコンテナーはディスパッチャー型に関して異なるデフォルトを適用する場合があることに注意してください。このフラグは、フィルターの設計意図を強制します。デフォルトの戻り値は "true" です。これは、後続の非同期ディスパッチ中にフィルターが呼び出されないことを意味します。"false" の場合、フィルターは非同期ディスパッチ中に呼び出され、単一スレッド内のリクエスト中に 1 回だけ呼び出されるという同じ保証があります。
- オーバーライド:
- クラス
OncePerRequestFilter
のshouldNotFilterAsyncDispatch
shouldNotFilterErrorDispatch
protected boolean shouldNotFilterErrorDispatch()クラスからコピーされた説明:OncePerRequestFilter
サーブレットコンテナーがweb.xml
にマッピングされたときなどのエラーディスパッチをフィルタリングするかどうか。デフォルトの戻り値は "true" です。これは、エラーディスパッチの場合にフィルターが呼び出されないことを意味します。- オーバーライド:
- クラス
OncePerRequestFilter
のshouldNotFilterErrorDispatch
doFilterInternal
protected void doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE chain) throws ServletExceptionEE, IOExceptionSE クラスからコピーされた説明:OncePerRequestFilter
doFilter
と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。詳細については、OncePerRequestFilter.shouldNotFilterAsyncDispatch()
を参照してください。デフォルトの ServletRequest および ServletResponse の代わりに、HttpServletRequest および HttpServletResponse 引数を提供します。
- 次で指定:
- クラス
OncePerRequestFilter
のdoFilterInternal
- 例外:
ServletExceptionEE
IOExceptionSE
trailingSlashHandler
public static UrlHandlerFilter.Builder.TrailingSlashSpec trailingSlashHandler(StringSE... pathPatterns) 末尾にスラッシュが付いた URL のハンドラーを追加してビルダーを作成します。- パラメーター:
pathPatterns
- ハンドラーをマップするパスパターン (例:"/path/*"
、"/path/**"
、"/path/foo/"
)。- 戻り値:
- 末尾のスラッシュハンドラーを設定するための仕様
- 関連事項: