一、传统的方法,修改tomcat/conf/server.xml文件找到如下位置:
<Connector port="8080"……这个位置,在末尾加上一段 URIEncoding="GBK"
例:<Connector port="8080"……disableUploadTimeout="true" URIEncoding="GBK"/>
二、修改处理编码的过滤器。
例:CharFilter.java
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
//通过这里转换后过滤,过滤器的配置在web.xml中不变
if (req.getMethod().equalsIgnoreCase("get")) {
this.encoding(req);
}
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
private void encoding(HttpServletRequest request) {
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"),
"GBK");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
个人喜欢用第二种方法,因为当你的工程做好后要在别人机器上运行时,就不用去更改这些tomcat的配置了。