j2ee 乱码终极解决

 

经过最一段的学习,我逐渐放弃了jboss服务器,一是因为它操作比较复杂,二占用资源多,三是因为配置复杂。

总之,选择了tomcat服务器这一对我来说是全新的服务器,从开始使用它,到现在能通过它掌握J2EE的思想,收获是很大的。

  今天,我就讲一下,jsp开发中的乱码解决方案,这些方法对于中文任何乱码问题都有介绍。

 

 一:数据库JDBC驱动的选择----数据库乱码。

    例如,我用的是MY SQL 5.0开发的,刚开始采用的JDBC驱动是3.0版本的,结果从数据库读的数据全是乱码,并且不能将数据正确的从jsp页面或java bean存储到数据库中,最后我下载了一个3.1的驱动,数据的读取开始正常了。

二:jsp页面的编码问题。

  我们知道jsp页面最终将转换为java代码执行,而java的核心代码编码方式UNICODE 所以对简体中文(gb2312)的支持是比较弱的,我们应该养成好的习惯,毕竟我们生长在伟大的中华人民共和国,我们必须支持母语。

 一个页面要与另外一个页面交互,大部分都是request,response在起作用,同时当前page也应该支持编码.因此,我们可以在每个页面开始的时候加上这样一端语句。
<%@ page language="java" pageEncoding="GB2312" contentType="text/html; charset=gb2312" %>

<%
request.setCharacterEncoding("gb2312");
%>

<%
response.setContentType("text/html;charset=gb2312");
%>

<%
response.setCharacterEncoding("GB2312");
%>

或者,我们可以把这些包含到一个文件中在所有的jsp页面中include一下就OK了,(没有尝试过)。

三:服务器问题。

   当我在tomcat服务器下能正常显示所有页面时,我开始做页面的交互,比如将a.jsp里面的表单提交给b.jsp,或者是一个servlet,或者是一个struts里面的action。但是,在提交后显示的都是乱码,很是让我头痛,这个问题一直困扰了我几天,最终在网上不经意间看了一下tomcat配置时应该注意的事项发现,可能是tomcat服务器本身的问题造成的。

  有了这个想法,我便开始有了头绪,从网上收集各种资料,因为是自学所以也不知道是哪个对,最后经过推测和测试发现一个是正确的。

  那就是将tomcat下的conf文件夹下的server.xml做一下简单的配置,下面是我的xml中追加的一句话


    <Connector port="8888"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" URIEncoding="gb2312" />

 

这段也是可以更改端口号的地方,改完这个之后我重新启动了tomcat服务器,一切恢复到正常。

四:要注意配置的软件的合理搭配问题,像我们不能将tomcat 6.0和jdk 1.0在一块使用一样 

五:在通过url传递参数的时候,钥匙参数为汉字应该将参数进行预编码

     msg="新用户名,原用户名和新密码都不能为空!";
      msg=java.net.URLEncoder.encode(msg);
      response.sendRedirect("modiuser.jsp?oldname="+oldname+"&msg="+msg);

     即可,在需要显示的页面加上,也可以不加

request.getParameter("test").getBytes("ISO8859_1")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值