package com.mtools.core.plugin.web.filter; import java.io.IOException; import java.util.Iterator; import java.util.Map; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.mtools.core.plugin.properties.CoreParams; public class HttpGetEncodeFilter implements Filter { private static final Log log = LogFactory.getLog(HttpGetEncodeFilter.class); String tomcatEncode="UTF-8"; @Override public void destroy() { // TODO Auto-generated method stub } @SuppressWarnings("unchecked") @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req=(HttpServletRequest) request; if(req.getMethod().equalsIgnoreCase("get")){ // log.debug("get 请求原编码:"+req.getCharacterEncoding()); if("ISO8859-1".equals(tomcatEncode)){ log.debug("get tomcat 默认编码 ISO8859-1"); Map<String,String> params = request.getParameterMap(); Iterator<Map.Entry<String, String>> it = params.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); String value = request.getParameter(entry.getKey()); value = new String(value.getBytes("ISO8859-1"), request.getCharacterEncoding()); log.debug("get 请求参数:"+entry.getKey()+"--"+value); // params.put(entry.getKey(), value); } req.setCharacterEncoding("UTF-8"); } } chain.doFilter(request, response); } @Override public void init(FilterConfig config) throws ServletException { this.tomcatEncode=config.getInitParameter("tomcatEncode"); } }