setcharacterencodingfilter.java

来自「表单提交时」· Java 代码 · 共 56 行

JAVA
56
字号

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
 * 表单提交时,解决中文乱码
 * 
 */
public class SetCharacterEncodingFilter implements Filter 
{
      protected String encoding = null;
      protected FilterConfig filterConfig = null;
      protected boolean ignore = true;
      
      public void init(FilterConfig filterConfig) throws ServletException
      {
            this.filterConfig=filterConfig;
            this.encoding=filterConfig.getInitParameter("encoding");
            String value=filterConfig.getInitParameter("ignore");
            if(value==null)
                this.ignore=true;
            else if(value.equalsIgnoreCase("true"))
                this.ignore=true;
            else
                this.ignore=false;
      }
      
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException 
      {
            // TODO 自动生成方法存根
            if (ignore || (request.getCharacterEncoding() == null))
            {
                String encoding = selectEncoding(request);
                if (encoding != null)
                request.setCharacterEncoding(encoding);
            }
            chain.doFilter(request, response);
      }
      
      public void destroy() 
      {
            // TODO 自动生成方法存根
            this.encoding = null;
            this.filterConfig = null;
      }
      
      protected String selectEncoding(ServletRequest request)
      {
            return (this.encoding);
      }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?