类 CharacterEncodingFilter

所有已实现的接口:
cn.taketoday.beans.factory.Aware, cn.taketoday.beans.factory.BeanNameAware, cn.taketoday.beans.factory.DisposableBean, cn.taketoday.beans.factory.InitializingBean, cn.taketoday.context.EnvironmentAware, cn.taketoday.core.env.EnvironmentCapable, ServletContextAware, Filter

public class CharacterEncodingFilter extends OncePerRequestFilter
Servlet Filter that allows one to specify a character encoding for requests. This is useful because current browsers typically do not set a character encoding even if specified in the HTML page or form.

This filter can either apply its encoding if the request does not already specify an encoding, or enforce this filter's encoding in any case ("forceEncoding"="true"). In the latter case, the encoding will also be applied as default response encoding (although this will usually be overridden by a full content type set in the view).

从以下版本开始:
4.0 2023/4/2 16:02
作者:
Juergen Hoeller, Harry Yang
另请参阅:
  • 字段详细资料

    • encoding

      @Nullable private String encoding
    • forceRequestEncoding

      private boolean forceRequestEncoding
    • forceResponseEncoding

      private boolean forceResponseEncoding
  • 构造器详细资料

    • CharacterEncodingFilter

      public CharacterEncodingFilter()
      Create a default CharacterEncodingFilter, with the encoding to be set via setEncoding(java.lang.String).
      另请参阅:
    • CharacterEncodingFilter

      public CharacterEncodingFilter(String encoding)
      Create a CharacterEncodingFilter for the given encoding.
      参数:
      encoding - the encoding to apply
      另请参阅:
    • CharacterEncodingFilter

      public CharacterEncodingFilter(String encoding, boolean forceEncoding)
      Create a CharacterEncodingFilter for the given encoding.
      参数:
      encoding - the encoding to apply
      forceEncoding - whether the specified encoding is supposed to override existing request and response encodings
      另请参阅:
    • CharacterEncodingFilter

      public CharacterEncodingFilter(String encoding, boolean forceRequestEncoding, boolean forceResponseEncoding)
      Create a CharacterEncodingFilter for the given encoding.
      参数:
      encoding - the encoding to apply
      forceRequestEncoding - whether the specified encoding is supposed to override existing request encodings
      forceResponseEncoding - whether the specified encoding is supposed to override existing response encodings
      另请参阅:
  • 方法详细资料

    • setEncoding

      public void setEncoding(@Nullable String encoding)
      Set the encoding to use for requests. This encoding will be passed into a ServletRequest.setCharacterEncoding(java.lang.String) call.

      Whether this encoding will override existing request encodings (and whether it will be applied as default response encoding as well) depends on the "forceEncoding" flag.

    • getEncoding

      @Nullable public String getEncoding()
      Return the configured encoding for requests and/or responses.
    • setForceEncoding

      public void setForceEncoding(boolean forceEncoding)
      Set whether the configured encoding of this filter is supposed to override existing request and response encodings.

      Default is "false", i.e. do not modify the encoding if ServletRequest.getCharacterEncoding() returns a non-null value. Switch this to "true" to enforce the specified encoding in any case, applying it as default response encoding as well.

      This is the equivalent to setting both setForceRequestEncoding(boolean) and setForceResponseEncoding(boolean).

      另请参阅:
    • setForceRequestEncoding

      public void setForceRequestEncoding(boolean forceRequestEncoding)
      Set whether the configured encoding of this filter is supposed to override existing request encodings.

      Default is "false", i.e. do not modify the encoding if ServletRequest.getCharacterEncoding() returns a non-null value. Switch this to "true" to enforce the specified encoding in any case.

    • isForceRequestEncoding

      public boolean isForceRequestEncoding()
      Return whether the encoding should be forced on requests.
    • setForceResponseEncoding

      public void setForceResponseEncoding(boolean forceResponseEncoding)
      Set whether the configured encoding of this filter is supposed to override existing response encodings.

      Default is "false", i.e. do not modify the encoding. Switch this to "true" to enforce the specified encoding for responses in any case.

    • isForceResponseEncoding

      public boolean isForceResponseEncoding()
      Return whether the encoding should be forced on responses.
    • doFilterInternal

      protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException
      从类复制的说明: OncePerRequestFilter
      Same contract as for doFilter, but guaranteed to be just invoked once per request within a single request thread. See OncePerRequestFilter.shouldNotFilterAsyncDispatch() for details.

      Provides HttpServletRequest and HttpServletResponse arguments instead of the default ServletRequest and ServletResponse ones.

      指定者:
      doFilterInternal 在类中 OncePerRequestFilter
      抛出:
      ServletException
      IOException