一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

 JSP解决中文乱码问题

时间:2011-06-14 编辑:简简单单 来源:一聚教程网

一、程序说明
  2.开发环境:tomcat7.0+windows7+myeclips教程e9.0
  3.解决问题:解决jsp教程中文乱码问题
二、基本流程
  
三、运行界面
  1.用户注册界面
  
  2.JQuery表单验证
  
  3.提交post信息
  
  4.数据库信息
  
四、程序的主要代码
  1.字符过滤器(CharacterFilter.java)
1 public class CharacterFilter implements Filter {
2 String encoding = null; // 声明字符编码
3   @Override
4 public void destroy() {
5 encoding = null; //销毁过滤器对象时,同时将字符编码值变为空
6   }
7 @Override
8 public void 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 public void init(FilterConfig filterConfig) throws ServletException {
18 encoding = filterConfig.getInitParameter("encoding"); // 获取初始化参数
19   }
20 }
  2.web.xml配置
1
2 CharacterFilter
3 com.swyma.md5.filter.CharacterFilter
4
5 encoding
6 UTF-8
7

8

9
10 CharacterFilter
11 /*
12

3.数据库连接类(请特别注意下url)

1 public class DBCon {
2 private static Connection conn = null;
3 public static 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
DROP TABLE IF EXISTS `md5`.`tb_user`;
CREATE TABLE `md5`.`tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`pwd` varchar(40) NOT NULL,
`sex` varchar(5) NOT NULL,
`age` int(11) NOT NULL,
`createTime` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT 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这个错误,我就觉得奇怪了。如果有网友和我遇到的问题一样或者有好的解决方案,希望能指导一下

热门栏目