方法一:
web.xml配置如下:
过滤器代码:
package com.lhy.util;
import java.io.IOException;
import java.util.Enumeration;
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 javax.servlet.http.HttpServletResponse;
public class Ecodingfilter implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest)req;
String method=request.getMethod();
if(method.equalsIgnoreCase("post")){
request.setCharacterEncoding("utf-8");
}else{
Enumeration<String> enu=request.getParameterNames();
while(enu.hasMoreElements()){
String name=enu.nextElement();
String[] valuse=request.getParameterValues(name);
for (int i = 0; i < valuse.length; i++) {
valuse[i]=new String(valuse[i].getBytes("iso-8859-1"),"utf-8");
}
}
}
//响应乱码解决
resp.setContentType("text/html;charset=utf-8");
//放行(传递请求)
chain.doFilter(request, resp);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
方法二:
在web.xml中直接配置如下:
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class> org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
两种方法都可以解决乱码问题。