http请求参数中中文乱码问题解决办法

package cn.woogo.micp.filter;

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;

/**
* ClassName: CharacterEncodingFilter
*
* @Description: 处理请求参数乱码问题
*
@author Zeus
* @date 2016-5-17
*/
public class CharacterEncodingFilter implements Filter {

   
protected String encoding = null;

   
protected FilterConfig filterConfig = null;

   
protected boolean ignore = true;

    @Override
   
public void destroy() {
       
this.encoding = null;
       
this.filterConfig = null;
    }

    @Override
   
public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain)
throws IOException, ServletException {
       
if (ignore || (request.getCharacterEncoding() == null)) {
            String encoding
= selectEncoding(request);
           
if (encoding != null)
                request.setCharacterEncoding(encoding);
        }
        chain.doFilter(request, response);
    }

    @Override
   
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 if (value.equalsIgnoreCase("yes")) {
           
this.ignore = true;
        }
else
            this.ignore = false;

    }

   
protected String selectEncoding(ServletRequest request) {
       
return (this.encoding);
    }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/169321c2d07464d1500e2322ba99a07b.html