表单的中文处理一次故障处理

类别:Java 点击:0 评论:0 推荐:

表单的中文处理一次故障处理

 

曾经被已经解决过得问题再次烦恼,真是一次不愉快的事情。也许让我更加认识了问题的原因,或者不同情况下的处理。

在表单提交处理中文的时候,我们大多使用 request.setCharacterEncoding("gb2312") 方法,或者使用servlet的filter过滤设置来处理中文表单的提交。需要注意的是,这个方法的使用一定需要在 request.getParameter前使用。否则对你所需要的结果会有不同的影响:

在Apache Tomcat/4.1.27下面,字符集设置无效。字符仍然乱码,没有进行正常的转换。

在weblogic 7.0.5.0下面,一些正常,没有不正常现象。

 

参考jsp。

<%@ page language="java" contentType="text/html; charset=gb2312" %>

<html>

  <% 

      String strId = request.getParameter("Id");

      request.setCharacterEncoding("gb2312");

      String strName = request.getParameter("name");      

      System.out.println("strName is : " + strName);

  %> 

  <body>

    This is my JSP page. <br>

    <FORM method="post">

           <INPUT type="text" name="Id" value='<%=strId%>'/>

           <br>

           <INPUT type="text" name="name" value='<%=strName%>'/>

           <br>

           <INPUT type="submit">

    </FORM>

  </body>

</html>

 

不同的环境,总是有时候出现不同的情况,让你不得不劳累身心的去测试环境。再次发布系统的时候,一定要加上环境,可能这个环境最好限定在你所进行安全测试的安全环境。

上面只是一个演示的例子,我所遇到的情况是在request去过一个参数后,然后调用一个共有方法填充对象,在设置中文的时候出了问题。又讨饶了我不少时间。虽然j2ee规范是一致,实现还是有所区别哦。

本文地址:http://com.8s8s.com/it/it11797.htm