public class CharacterEncodingFilter extends OncePerRequestFilter
このフィルターは、リクエストでエンコーディングが指定されていない場合にそのエンコーディングを適用するか、いずれの場合もこのフィルターのエンコーディングを強制することができます ("forceEncoding" ="true" )。後者の場合、エンコーディングはデフォルトのレスポンスエンコーディングとしても適用されます (ただし、これは通常、ビューで設定された完全なコンテンツ型によって上書きされます)。
setEncoding(java.lang.String)
, setForceEncoding(boolean)
, ServletRequest.setCharacterEncoding(java.lang.String)
EE, ServletResponse.setCharacterEncoding(java.lang.String)
EEALREADY_FILTERED_SUFFIX
logger
コンストラクターと説明 |
---|
CharacterEncodingFilter() デフォルトの CharacterEncodingFilter を作成し、エンコーディングを setEncoding(java.lang.String) で設定します。 |
CharacterEncodingFilter(StringSE encoding) 指定されたエンコーディングの CharacterEncodingFilter を作成します。 |
CharacterEncodingFilter(StringSE encoding, boolean forceEncoding) 指定されたエンコーディングの CharacterEncodingFilter を作成します。 |
CharacterEncodingFilter(StringSE encoding, boolean forceRequestEncoding, boolean forceResponseEncoding) 指定されたエンコーディングの CharacterEncodingFilter を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected void | doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) doFilter と同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。 |
StringSE | getEncoding() リクエストまたはレスポンス、あるいはその両方に構成されたエンコードを返します。 |
boolean | isForceRequestEncoding() エンコードをリクエストで強制する必要があるかどうかを返します。 |
boolean | isForceResponseEncoding() レスポンスでエンコードを強制する必要があるかどうかを返します。 |
void | setEncoding(StringSE encoding) リクエストに使用するエンコーディングを設定します。 |
void | setForceEncoding(boolean forceEncoding) このフィルターの構成済み encoding が既存のリクエストおよびレスポンスエンコードをオーバーライドすることになっているかどうかを設定します。 |
void | setForceRequestEncoding(boolean forceRequestEncoding) このフィルターの構成済み encoding が既存のリクエストエンコードをオーバーライドすることになっているかどうかを設定します。 |
void | setForceResponseEncoding(boolean forceResponseEncoding) このフィルターの構成済み encoding が既存のレスポンスエンコードをオーバーライドすることになっているかどうかを設定します。 |
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatch
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 CharacterEncodingFilter()
CharacterEncodingFilter
を作成し、エンコーディングを setEncoding(java.lang.String)
で設定します。public CharacterEncodingFilter(StringSE encoding)
CharacterEncodingFilter
を作成します。encoding
- 適用するエンコーディング setEncoding(java.lang.String)
public CharacterEncodingFilter(StringSE encoding, boolean forceEncoding)
CharacterEncodingFilter
を作成します。encoding
- 適用するエンコーディング forceEncoding
- 指定されたエンコーディングが既存のリクエストおよびレスポンスエンコーディングをオーバーライドすることになっているかどうか setEncoding(java.lang.String)
, setForceEncoding(boolean)
public CharacterEncodingFilter(StringSE encoding, boolean forceRequestEncoding, boolean forceResponseEncoding)
CharacterEncodingFilter
を作成します。encoding
- 適用するエンコーディング forceRequestEncoding
- 指定されたエンコーディングが既存のリクエストエンコーディングをオーバーライドすることになっているかどうか forceResponseEncoding
- 指定されたエンコーディングが既存のレスポンスエンコーディングをオーバーライドすることになっているかどうか setEncoding(java.lang.String)
, setForceRequestEncoding(boolean)
, setForceResponseEncoding(boolean)
public void setEncoding(@Nullable StringSE encoding)
ServletRequest.setCharacterEncoding(java.lang.String)
EE 呼び出しに渡されます。 このエンコードが既存のリクエストエンコードをオーバーライドするかどうか(およびデフォルトのレスポンスエンコードとしても適用されるかどうか)は、"forceEncoding"
フラグに依存します。
public void setForceEncoding(boolean forceEncoding)
encoding
が既存のリクエストおよびレスポンスエンコードをオーバーライドすることになっているかどうかを設定します。 デフォルトは "false" です。つまり、ServletRequest.getCharacterEncoding()
EE が null 以外の値を返す場合、エンコードを変更しません。これを "true" に切り替えて、指定されたエンコーディングを強制し、デフォルトのレスポンスエンコーディングとしても適用します。
これは、setForceRequestEncoding(boolean)
と setForceResponseEncoding(boolean)
の両方を設定することと同等です。
public void setForceRequestEncoding(boolean forceRequestEncoding)
encoding
が既存のリクエストエンコードをオーバーライドすることになっているかどうかを設定します。 デフォルトは "false" です。つまり、ServletRequest.getCharacterEncoding()
EE が null 以外の値を返す場合は、エンコーディングを変更しません。これを "true" に切り替えて、指定されたエンコーディングを強制します。
public boolean isForceRequestEncoding()
public void setForceResponseEncoding(boolean forceResponseEncoding)
encoding
が既存のレスポンスエンコードをオーバーライドすることになっているかどうかを設定します。デフォルトは "false" です。つまり、エンコードを変更しません。これを "true" に切り替えて、どのような場合でもレスポンスに指定されたエンコーディングを適用します。
public boolean isForceResponseEncoding()
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