`
linglingxia
  • 浏览: 38036 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

Jsp表单提交数据乱码问题

    博客分类:
  • Web
 
阅读更多

              Jsp表单提交数据出现乱码

        这个问提真的就纠结了好多天。太复杂了。说是涉及到到jsp文件的存储格式,又有解码格式,还有浏览器的解码格式。

     1. 网上说了很多方法,我觉得更改server.xml文件这个方法应该相对来说是比较简单的,改了之后就一劳永逸了。所以就将

     <Connector port="80" protocol="HTTP/1.1"

             maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 

            enableLookups="false"

               connectionTimeout="20000"

               redirectPort="8443" URIEncoding="gbk"/> 

     改成

   <Connector port="8080" maxHttpHeaderSize="8192" 

           maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 

            enableLookups="false" redirectPort="8443" acceptCount="100" 

           connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="gbk"> 

      我试过,不行。开始以为是自己那个单词写错了,后来就把网上的这段copy过来。还是不行。后来小甘说,她就是这么做的,完全行得通。我就无语了,难道还是概率事件,重启试过很多次还是不行。又说可以在上面加上useBodyEncodingForURI=”true” ,但还是不行。现在也不知道是什么原因。为什么很多人都说是可以的???

 

 

      2. 没办法得尝试其他方法。在servlet 类中,对提交的数据先做以下处理。

    request.setCharacterEncoding("gbk");

        response.setCharacterEncoding("gbk");

        这样可以正确显示中文了。但是这个方法也比较麻烦,每个servlet类里面都要写。但是奇怪的是我又用新建的jsp页面时,这个方法又行不通了。我甚至将页面提交到前面行得通的servelt类,也不行。但第一次的jsp页面却可以。仔细看才知道,这两个jsp页面提交的方式不一样,前面是我自己设置的post方法,而第二个我并没有设置提交方式,是默认的get方法

     难道postget在提交的时候不只是地址栏和提交数据量的区别?后来搜这两个在提交时候的区别。tomcatpostget的处理方法不一样,他们两个在传参的时候,编码不一样。Tomcat的内部编码格式是iso-8856-1,tomcatget的缺省编码方式是iso-8859-1,get提交方式不再进行其他的编码,所以接收页面通过请求对象的getParameter()得到的字符串是以iso-8859-1转换来的,故中文会出现乱码。所以用上面的转换方法不能还原得到中文。  post提交方式是经过页面设置的编码格式编码的,不存在特殊字符传错问题。我试过用上述方法是可以的。对于get提交方法,在接收页面对获取提交的数据做处理之前,还要做以下处理

        

     String usename=request.getParameter("uName");

     byte bytes[]=usename.getBytes("iso-8859-1");

     String  username=new String(bytes,"gb2312");

 

 

也可以解决乱码问题,但这个方法就更加的麻烦了,对每一个提交的数据都要做这么复杂的转换。网上很多人说可以使用过滤器,按照方法做了,不过也是对post提交方式可以,对get提交方法也还是不行。而且我不知道这个过滤器是怎么运行的,觉得很奇怪啊,我又没有调用它。

     

      所以总的来说,post比get提交方式好多了,又方便使用,又安全,又没有数据量的限制。

   

     3.对于这个方法,在preferences中修改

  window--preferences--general--workspace--other--UTF-8

  JSP页面右击--preferences--javascript--enconding--UTF-8

 

  我试了,jsp页面提交的中文,servlet确实可以收到,也能将数据库中的信息显示出来。但有一个问题,就是我的eclipse中编辑区的所有中文都乱码了,连控制台的中文也都是乱码,包括其他java工程也都是这样,吓得我又重新设置回来。这是为什么,是因为我之前的文件保存的编码格式的问题吗??

 

 

   4. 几条指令的认识

   <%@ page language="java"  pageEncoding="gbk"%>

这是表示jsp的文件的存储格式。

   <%@ page contentType="text/html; charset=gbk"%>

   这是表示解码格式,所以这两个必须保持一致,否则会出现乱码。如果第二条没有,缺省是使用iso8859-1的编码格式。

   两个指令的区别

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

pageEncoding="gbk"%>是在jsp被编译为html的过程中提供编码方式,让java读取表达式当中的String

 

    <meta http-equiv="Content-Type" content="text/html; charset=gbk">  的作用是为IE浏览器提供编码选择,是用来“显示”最后的数据的。

 

    

分享到:
评论
1 楼 Leisurez 2014-01-27  
楼主辛苦,But排版要命了!

相关推荐

    JSP中文乱码处理JSP中文乱码处理

    jsp中文乱码的处理 页面显示 表单提交 数据库操作JSP中文乱码处理

    Jsp乱码问题解决

    大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 一、JSP页面显示乱码 二、表单提交中文时出现乱码 三、数据库连接时...

    Servlet及jsp解决中文乱码问题

    彻底解决Servlet及jsp解决中文乱码问题

    传值 乱码 处理 jsp 处理表单时

    传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理传值 乱码 处理

    java+jsp+mysql开发 web项目处理中文乱码问题

    Jsp输出中文的乱码问题,获取表单提交的数据时的中文乱码问题,url中的中文问题,数据库中采取的编码方式不同于utf-8怎么办

    JSP中文乱码问题综述,中文乱码解决大全

    JSP中文乱码问题综述,中文乱码解决大全,表单使用Post方式提交后接收到的乱码问题,表单get提交方式的乱码处理方式,上传文件时的乱码解决,Java代码关于url请求,接受参数的乱码,关于jsp在MyEclipse中打开的乱码问题,...

    Jsp乱码问题解决2

    1 最基本的乱码问题。 这个乱码问题是最简单的乱码问题。...2 表单使用Post方式提交后接收到的乱码问题 3 表单get提交方式的乱码处理方式。 4 上传文件时的乱码解决 5 Java代码关于url请求,接受参数的乱码 ......

    JSP乱码解决大全

    JSP乱码解决大全 JSP页面显示乱码 表单提交中文时出现乱码 数据库连接

    中文乱码问题

    JSP文件的中文乱码问题 Servlet的中文乱码问题 表单处理的中文乱码问题 Struts 2的中文乱码问题

    如何解决Tomcat下中文乱码问题?

    现在将常见的乱码问题分为JSP页面显示中文乱码、表单提交乱码两类。 1)JSP页面中显示中文乱码 在JSP文件中使用page命令指定响应结果的MIME类型,如;charset=gb2312" %&gt;

    JSP出现中文乱码问题解决方法详解

    在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的JSP中文乱码问题有如下几个方面:页面乱码、参数乱码、表单乱码、源文件乱码。下面来逐一解决其中的乱码问题。 一、JSP页面中文乱码 在JSP...

    jsp传值中文乱码问题解决方法示例介绍

    在jsp中,我们经常从数据库读取数据返回客户端,但我们常常在制作时出现乱码现象,所以我们可以用&lt;&#37;request.setCharacterEncoding(“UTF-8”);%&gt;这个方法来保证中文的正确输出,下面举个例子吧, 我们要接住...

    jspsmartupload支持中文,不乱码

    修改过的jspsmartupload ,可以获取表单中的中文数据,不乱码,可以上传名字含有中文的文件。

    jsp课后习题第4章.docx

    4-2 当表单提交信息中包括汉字时,在获取时应该做怎样的处理? 使用request.setCharacterEncoding(“gb2312”) 4-3 如何实现禁用缓存功能? 通过设置HTTP头可实现禁用缓存功能,具体代码如下: ("Cache-Control",...

    jsp中文乱码 jsp mysql 乱码的解决方法

    当使用JSP页面将中文数据添加到MySql数据库中的时候发现变为乱码,或者从mysql中读取中文的时候出现乱码,这些问题根源都是由于字符编码不一致造成的。要知道病源是什么我们才能对症下药,所以我将问题产生的过程...

    jsp常用经典代码(md5java实现,生成中文/数字验证码,解决中文乱码)

    jsp常用经典代码(md5java实现,生成中文/数字验证码,解决中文乱码) 自己平时收集的好资料和大家一起分享!!

    Jsp中request的3个基础实践

    本文包含request内置对象的使用、乱码处理的两种方法、使用request.getParamter()方法获取表单提交的数据、采用request对象通过getParameter()方法和getParameterValues()方法获取表单请求数据、使用request内置对象...

    彻底解决fckeditor(jsp版)上传中文图片乱码问题

    彻底解决fckeditor(jsp版)上传中文图片乱码问题,我这里用的编码是utf-8的,这里用的fckeditor 是2.6的,fckeditor.java包是2.3的,经过我修改ConnectorServlet.java和SimpleUploaderServlet.java两个文件,重新生成...

    Java Web应用开发中的中文乱码问题研究.pdf

    在java Web应用开发中,软件开发人员最容易遇到的问题就是中文的乱码问题,其中最常见的有两种,JSP页面中文显示乱码和表单提交参数中文乱码。本文通过深入分析这两种中文乱码问题产生的原因,分别给出了对应的解决方案...

    jsp内置对象的使用

    欢迎大家共同学习共同进步

Global site tag (gtag.js) - Google Analytics