JSP解决中文乱码问题
JSP解决中文乱码问题
一、程序说明
1.数据库:mysql
2.开发环境:tomcat7.0+windows7+myeclipse9.0
3.解决问题:解决jsp中文乱码问题
二、基本流程
三、运行界面
1.用户注册界面
2.JQuery表单验证
3.提交post信息
4.数据库信息
四、程序的主要代码
1.字符过滤器(CharacterFilter.java)
2 String encoding =null; // 声明字符编码
3 @Override
4 publicvoid destroy() {
5 encoding =null; //销毁过滤器对象时,同时将字符编码值变为空
6 }
7 @Override
8 publicvoid doFilter(ServletRequest request, ServletResponse response,
9 FilterChain chain) throws IOException, ServletException {
10 if(encoding !=null){
11 request.setCharacterEncoding(encoding); // 设置request的编码格式
12 response.setContentType("text/html; charset="+encoding); // 设置response字符编码
13 }
14 chain.doFilter(request, response);
15 }
16 @Override
17 publicvoid init(FilterConfig filterConfig) throws ServletException {
18 encoding = filterConfig.getInitParameter("encoding"); // 获取初始化参数
19 }
20 }
2.web.xml配置
2 <filter-name>CharacterFilter</filter-name>
3 <filter-class>com.swyma.md5.filter.CharacterFilter</filter-class>
4 <init-param>
5 <param-name>encoding</param-name>
6 <param-value>UTF-8</param-value>
7 </init-param>
8 </filter>
9 <filter-mapping>
10 <filter-name>CharacterFilter</filter-name>
11 <url-pattern>/*</url-pattern>
12 </filter-mapping>
3.数据库连接类(请特别注意下url)
2 privatestatic Connection conn =null;
3 publicstatic Connection getConn(){
4 try {
5 Class.forName("com.mysql.jdbc.Driver"); //加载数据库连接驱动
6 String user="root"; //用户名
7 String pwd="123"; //密码
8 String url ="jdbc:mysql://localhost:3306/md5?useUnicode=true&characterEncoding=utf-8"; //数据库连接url
9 conn=DriverManager.getConnection(url, user, pwd);//获取连接
10 } catch (Exception e) {
11 e.printStackTrace();
12 }
13 return conn;
14 }
15 }
4.数据库mysql
CREATETABLE `md5`.`tb_user` (
`id` int(11) NOTNULL AUTO_INCREMENT,
`name` varchar(20) NOTNULL,
`pwd` varchar(40) NOTNULL,
`sex` varchar(5) NOTNULL,
`age` int(11) NOTNULL,
`createTime` datetimeNOTNULL,
PRIMARYKEY (`id`)
) ENGINE=InnoDBDEFAULT CHARSET=utf8;
五、个人总结
1.首先我想说说我的一些感悟吧:
其实这个中文乱码问题早在去年暑假学jsp的时候就解决过,但是由于没有及时总结,程序又不知道什么给我删除掉了,结果呢,我花了一天多时间才把它重新整回来,代
价太惨了,所以总结很重要。如果朋友你看到,请现在开始学会总结吧。
2.这个是简单的jsp解决中文乱码问题。
3.解决关键:一是CharacterFilter.java,字符过滤器,将jsp页面编码统一为utf-8;
二是DBCon.java中url的useUnicode=true&characterEncoding=utf-8这句话,一定要加上,不然也一样会出现乱码的。
4.解决过程:
1)一开始我只是加了个字符过滤器,然后以为就可以了,然后不管我怎么调试,结果还是乱码。然后我在网上找了些材料,感觉characterFilter又不会错啊,但是事与愿
违啊,无奈又得一步步的调试。
2)可能是由于自己的搜索能力不强,我查了好多资料,但是基本上都是加个CharacterFilter就可以的,但是我这系统它就是不行。
3)最后就靠自己的回忆吧,想起了这个url,有点幸运解决问题吧。
5.问题是解决了,但是还是感觉不是很完善一样,因为我在部署的时候有时会出现java.lang.NoClassDefFoundError: Filter这个错误,我就觉得奇怪了。如果有网友和我遇到的问题一样或者有好的解决方案,希望能指导一下。
出处: http://www.cnblogs.com/maoan/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。