1.数据库的编码设置为utf-8
2.编写字符编码集过滤器
EncodingFilter
com.sw1.common.Filter.EncodingFilter
EncodingFilter
/*
encoding
utf-8
package com.sw1.common.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;
public class EncodingFilter implements Filter{
private String encoding ;
public void destroy() {}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//从xml文件里面获取当前web初始化的encoding 参数值
encoding = filterConfig.getServletContext().getInitParameter("encoding") ;
System.out.println(encoding);
}
}
3.在mySQL配置文件中:jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8
4.若是从页面转到servlet里面发现乱码,例如模糊查询页面的分页效果保存查询名:修改Tomcat - conf - server.xml 里面的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>