要真正做项目了,TOMCAT +JSP+SERVLET 默认并不支持中文 ,平时学时都是用英文做测试,今天必须解决这个问题了,从网上找了几种办法, 发现有些过于麻烦有的也不通用,于是总结所学方法和网上方案构建了一个万全之策:
编码选择:UTF-8 支持 大部分国家的语言,对于门户网站来说GB2312
和GBK不是 最 好的选择;
1.首先JSP页面必须如下配置:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2.实现一个Filter.类名自定义如 filters.MyFilter
a) 在doFilter()方法中写入如下代码:
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding("utf-8");
arg2.doFilter(arg0,arg1);
}
b)在web.xml里配置下filter,加入如下:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.打开tomcat的server.xml文件,找到区块,加入如下一行:
URIEncoding=”UTF-8”
<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />
重启TOMCAT 配置完成.
其中第二部是为解决form中的POST方法 中文乱码问题;
第三步则解决GET方法;