クラス CharacterEncodingFilter

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

public class CharacterEncodingFilter extends OncePerRequestFilter
リクエストの文字エンコードを指定できるサーブレットフィルター。これは、現在のブラウザーは通常、HTML ページまたはフォームで指定されていても文字エンコードを設定しないため便利です。

このフィルターは、リクエストでエンコードが指定されていない場合にエンコードを適用するか、いずれにしてもこのフィルターのエンコードを適用できます("forceEncoding" ="true" )。後者の場合、エンコードはデフォルトのレスポンスエンコードとしても適用されます(ただし、これは通常、ビューで設定された完全なコンテンツ型によってオーバーライドされます)。

導入:
15.03.2004
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • CharacterEncodingFilter

      public CharacterEncodingFilter()
      デフォルトの CharacterEncodingFilter を作成し、エンコーディングを setEncoding(java.lang.String) で設定します。
      関連事項:
    • CharacterEncodingFilter

      public CharacterEncodingFilter(StringSE encoding)
      指定されたエンコーディングの CharacterEncodingFilter を作成します。
      パラメーター:
      encoding - 適用するエンコーディング
      導入:
      4.2.3
      関連事項:
    • CharacterEncodingFilter

      public CharacterEncodingFilter(StringSE encoding, boolean forceEncoding)
      指定されたエンコーディングの CharacterEncodingFilter を作成します。
      パラメーター:
      encoding - 適用するエンコーディング
      forceEncoding - 指定されたエンコーディングが既存のリクエストおよびレスポンスエンコーディングをオーバーライドすることになっているかどうか
      導入:
      4.2.3
      関連事項:
    • CharacterEncodingFilter

      public CharacterEncodingFilter(StringSE encoding, boolean forceRequestEncoding, boolean forceResponseEncoding)
      指定されたエンコーディングの CharacterEncodingFilter を作成します。
      パラメーター:
      encoding - 適用するエンコーディング
      forceRequestEncoding - 指定されたエンコーディングが既存のリクエストエンコーディングをオーバーライドすることになっているかどうか
      forceResponseEncoding - 指定されたエンコーディングが既存のレスポンスエンコーディングをオーバーライドすることになっているかどうか
      導入:
      4.3
      関連事項:
  • メソッドの詳細

    • setEncoding

      public void setEncoding(@Nullable StringSE encoding)
      リクエストに使用するエンコーディングを設定します。このエンコードは、ServletRequest.setCharacterEncoding(java.lang.String)EE 呼び出しに渡されます。

      このエンコードが既存のリクエストエンコードをオーバーライドするかどうか(およびデフォルトのレスポンスエンコードとしても適用されるかどうか)は、"forceEncoding" フラグに依存します。

    • getEncoding

      @Nullable public StringSE getEncoding()
      リクエストまたはレスポンス、あるいはその両方に構成されたエンコードを返します。
      導入:
      4.3
    • setForceEncoding

      public void setForceEncoding(boolean forceEncoding)
      このフィルターの構成済み encoding が既存のリクエストおよびレスポンスエンコードをオーバーライドすることになっているかどうかを設定します。

      デフォルトは "false" です。つまり、ServletRequest.getCharacterEncoding()EE が null 以外の値を返す場合、エンコードを変更しません。これを "true" に切り替えて、指定されたエンコーディングを強制し、デフォルトのレスポンスエンコーディングとしても適用します。

      これは、setForceRequestEncoding(boolean)setForceResponseEncoding(boolean) の両方を設定することと同等です。

      関連事項:
    • setForceRequestEncoding

      public void setForceRequestEncoding(boolean forceRequestEncoding)
      このフィルターの構成済み encoding が既存のリクエストエンコードをオーバーライドすることになっているかどうかを設定します。

      デフォルトは "false" です。つまり、ServletRequest.getCharacterEncoding()EE が null 以外の値を返す場合は、エンコーディングを変更しません。これを "true" に切り替えて、指定されたエンコーディングを強制します。

      導入:
      4.3
    • isForceRequestEncoding

      public boolean isForceRequestEncoding()
      エンコードをリクエストで強制する必要があるかどうかを返します。
      導入:
      4.3
    • setForceResponseEncoding

      public void setForceResponseEncoding(boolean forceResponseEncoding)
      このフィルターの構成済み encoding が既存のレスポンスエンコードをオーバーライドすることになっているかどうかを設定します。

      デフォルトは "false" です。つまり、エンコードを変更しません。これを "true" に切り替えて、どのような場合でもレスポンスに指定されたエンコーディングを適用します。

      導入:
      4.3
    • isForceResponseEncoding

      public boolean isForceResponseEncoding()
      レスポンスでエンコードを強制する必要があるかどうかを返します。
      導入:
      4.3
    • doFilterInternal

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

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

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