クラス UrlHandlerFilter

実装されたすべてのインターフェース:
FilterEEAwareBeanNameAwareDisposableBeanInitializingBeanEnvironmentAwareEnvironmentCapableServletContextAware

public final class UrlHandlerFilter extends OncePerRequestFilter
URL を変更し、変更を適用するためにリクエストをリダイレクトまたはラップする FilterEE

インスタンスを作成するには、以下を使用できます。

 UrlHandlerFilter filter = UrlHandlerFilter
    .trailingSlashHandler("/path1/**").redirect(HttpStatus.PERMANENT_REDIRECT)
    .trailingSlashHandler("/path2/**").wrapRequest()
    .build();
 

この Filter は、ForwardedHeaderFilter の後、セキュリティフィルターの前に並べ替える必要があります。

導入:
6.2
作成者:
Rossen Stoyanchev
  • メソッドの詳細

    • shouldNotFilterAsyncDispatch

      protected boolean shouldNotFilterAsyncDispatch()
      クラスからコピーされた説明: OncePerRequestFilter
      ディスパッチャー型 jakarta.servlet.DispatcherType.ASYNC は、単一のリクエスト中に複数のスレッドでフィルターを呼び出すことができることを意味します。一部のフィルターは最初のスレッドをフィルターするだけで済みますが (たとえば、リクエストの折り返し)、その他のフィルターは、スレッドローカルの設定や最後に最終処理を実行する場合など、各追加スレッドで少なくとも 1 回呼び出す必要がある場合があります。

      フィルターは、web.xml を介して特定のディスパッチャー型を処理するように、または ServletContext を介して Java で処理するようにマップできますが、サーブレットコンテナーはディスパッチャー型に関して異なるデフォルトを適用する場合があることに注意してください。このフラグは、フィルターの設計意図を強制します。

      デフォルトの戻り値は "true" です。これは、後続の非同期ディスパッチ中にフィルターが呼び出されないことを意味します。"false" の場合、フィルターは非同期ディスパッチ中に呼び出され、単一スレッド内のリクエスト中に 1 回だけ呼び出されるという同じ保証があります。

      オーバーライド:
      クラス OncePerRequestFiltershouldNotFilterAsyncDispatch 
    • shouldNotFilterErrorDispatch

      protected boolean shouldNotFilterErrorDispatch()
      クラスからコピーされた説明: OncePerRequestFilter
      サーブレットコンテナーが web.xml にマッピングされたときなどのエラーディスパッチをフィルタリングするかどうか。デフォルトの戻り値は "true" です。これは、エラーディスパッチの場合にフィルターが呼び出されないことを意味します。
      オーバーライド:
      クラス OncePerRequestFiltershouldNotFilterErrorDispatch 
    • doFilterInternal

      protected void doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE chain) throws ServletExceptionEE, IOExceptionSE
      クラスからコピーされた説明: OncePerRequestFilter
      doFilter と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。詳細については、OncePerRequestFilter.shouldNotFilterAsyncDispatch() を参照してください。

      デフォルトの ServletRequest および ServletResponse の代わりに、HttpServletRequest および HttpServletResponse 引数を提供します。

      次で指定:
      クラス OncePerRequestFilterdoFilterInternal 
      例外:
      ServletExceptionEE
      IOExceptionSE
    • trailingSlashHandler

      public static UrlHandlerFilter.Builder.TrailingSlashSpec trailingSlashHandler(StringSE... pathPatterns)
      末尾にスラッシュが付いた URL のハンドラーを追加してビルダーを作成します。
      パラメーター:
      pathPatterns - ハンドラーをマップするパスパターン (例: "/path/*""/path/**""/path/foo/")。
      戻り値:
      末尾のスラッシュハンドラーを設定するための仕様
      関連事項: