1.编写过滤器
package filter;
import java.io.IOException;
import java.util.Iterator;
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;
public class FilterEncoding implements Filter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
//判断提交的方式,如果为get方式过滤编码
if (req.getMethod().equalsIgnoreCase("get")) {
//得到jsp页面提交的参数的值
Iterator iter = request.getParameterMap().values().iterator();
while (iter.hasNext()) {
String[] parames = (String[]) iter.next();
for (int i = 0; i < parames.length; i++) {
try {
//转换编码格式
parames[i] = new String(parames[i].getBytes("iso8859-1"),"UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
}
public void destroy() {
}
}
/***************************************************************************************/
2.然后在web.xml将该过滤器配置
<!-- 配置过滤中文的过滤器 -->
<filter>
<filter-name>fileterEncoding</filter-name>
<filter-class>filter.FilterEncoding</filter-class>
</filter>
<filter-mapping>
<filter-name>fileterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>