public class RequestContextFilter extends OncePerRequestFilter
LocaleContextHolder
と RequestContextHolder
の両方を通じて、現在のスレッドにリクエストを公開するサーブレットフィルター。web.xml
にフィルターとして登録されます。 または、Spring の RequestContextListener
および Spring の DispatcherServlet
も、同じリクエストコンテキストを現在のスレッドに公開します。
このフィルターは、主にサードパーティのサーブレットで使用するためのものです。JSF FacesServlet。Spring 独自の Web サポート内では、DispatcherServlet の処理で完全に十分です。
LocaleContextHolder
, RequestContextHolder
, RequestContextListener
, DispatcherServlet
ALREADY_FILTERED_SUFFIX
logger
コンストラクターと説明 |
---|
RequestContextFilter() |
修飾子と型 | メソッドと説明 |
---|---|
protected void | doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) doFilter と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。 |
void | setThreadContextInheritable(boolean threadContextInheritable) LocaleContext および RequestAttributes を子スレッドの継承可能として公開するかどうかを設定します( InheritableThreadLocal SE を使用)。 |
protected boolean | shouldNotFilterAsyncDispatch() フィルターが非同期にディスパッチされた各スレッドでリクエストコンテキストを設定できるように、"false" を返します。 |
protected boolean | shouldNotFilterErrorDispatch() フィルターがエラーディスパッチでリクエストコンテキストを設定できるように、"false" を返します。 |
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter
addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setThreadContextInheritable(boolean threadContextInheritable)
InheritableThreadLocal
SE を使用)。生成されたバックグラウンドスレッドへの副作用を回避するため、デフォルトは "false" です。これを "true" に切り替えて、リクエストの処理中に生成され、このリクエストにのみ使用される(つまり、スレッドを再利用せずに、最初のタスクの後で終了する)カスタムの子スレッドの継承を有効にします。
警告 : 新しいスレッドをオンデマンドで追加するように構成されているスレッドプール(JDK ThreadPoolExecutor
SE など)にアクセスしている場合は、子スレッドの継承を使用しないでください。これにより、そのようなプールされたスレッドに継承されたコンテキストが公開されます。
protected boolean shouldNotFilterAsyncDispatch()
OncePerRequestFilter
の shouldNotFilterAsyncDispatch
protected boolean shouldNotFilterErrorDispatch()
OncePerRequestFilter
の shouldNotFilterErrorDispatch
protected void doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) throws ServletExceptionEE, IOExceptionSE
OncePerRequestFilter
doFilter
と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。詳細については、OncePerRequestFilter.shouldNotFilterAsyncDispatch()
を参照してください。デフォルトの ServletRequest および ServletResponse の代わりに、HttpServletRequest および HttpServletResponse 引数を提供します。
OncePerRequestFilter
の doFilterInternal
ServletExceptionEE
IOExceptionSE