`
linglingxia
  • 浏览: 38181 次
  • 性别: 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页面传值中文乱码问题处理.docx

    Post 表单乱码 在提交页面表单元素给对应的 JSP页面或者Servlet时,如果接收方出现表单数据中文值乱码,可能是由于接收参数的编码方式不正确所致。解决方案是,在接收 POST 提交的参数之前,使用 request.set...

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

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

    Jsp乱码问题解决

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

    Servlet及jsp解决中文乱码问题

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

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

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

    JSP表单处理(有图解)

    JSP 表单处理是指在 JSP 编程中,通过设计网页上的表单,收集用户输入的数据信息,并对其进行处理的技术。本章节将详细介绍利用 JSP 的 Request 对象的 getParameter 方法来获取表单数据的方法,并对 JSP 的数据库...

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

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

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

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

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

    当用户提交表单数据时,HTML 页面将参数发送给 JSP 页面,JSP 页面将参数编译成 class 文件,然后在 JSP 容器中运行,最后传递给 MySql 数据库。在这个过程中,每个阶段都可能存在字符编码问题,导致乱码的产生。 ...

    java中文乱码解决问题

    当提交表单采用 GET 方法时,提交的数据作为查询字符串被附加到 URL 的末端,发送到服务器,此时在服务器端调用 setCharacterEncoding() 方法也就没有作用了。我们需要在得到请求参数的值后,自己做正确的编码转换。...

    Jsp乱码问题解决2

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

    JSP乱码解决大全

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

    中文乱码问题

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

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

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

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

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

    java中文乱码处理.pdf

    Java中的中文乱码问题是非常常见的,特别是在JSP页面和表单提交中。如果不正确地处理中文乱码问题,可能会导致页面显示乱码、数据乱码等问题。 JSP页面中文乱码处理 在JSP页面中,显示中文乱码问题可以通过在JSP...

    2.JSP实现数据传递和保存.pptx

    * request 对象是 JSP 中的一个内置对象,用于获取表单提交的数据。 * request 对象的 getParameter() 方法可以根据表单组件的名称获取提交的数据。 * request 对象的 getParameterValues() 方法可以获取表单组件...

    中文乱码问题处理方法.docx

    在Web开发中,中文乱码问题是一个常见的问题,特别是在JSP页面、URL传递参数、表单提交、数据库连接等方面。为了解决这些问题,本文总结了几种常见的中文乱码问题处理方法。 1. JSP页面显示乱码 JSP页面显示乱码是...

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

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

    Tomcat和weblogic中文乱码问题解决方案

    * 转换由表单读取的数据的内码。 * 从 ISO 字符转到 GBK. */ public String toChi(String input) { try { byte[] bytes = input.getBytes("ISO8859-1"); return new String(bytes, "GBK"); } catch ...

Global site tag (gtag.js) - Google Analytics