`
zhangyou1010
  • 浏览: 303315 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tomcat6 中get 和 post 表单提交时编码的差别

    博客分类:
  • java
阅读更多

 

相信搞java的朋友都遇到过乱码问题,一般几乎都可以通过修改页面编码,tomcat编码,加过滤器等方式搞定,但为什么

 

要这么做呢?不一定每个人都明白。

 

最近弄jsp,再次遇到乱码问题,所以查了些资料,在这里记录下,以备以后可以查阅。

 

我现在用的tomcat版本是apache-tomcat-6.0.29,tomcat的配置都是默认的。

 

当我通过Jsp提交数据到后台的时候,插入到数据库,发现中文是乱码,debug发现还没到数据库就已经是乱码了,这说明

 

编码的设置有问题。

 

检查了下我的jsp页面,编码只设pageEncoding="UTF-8" ,contentType没有设置,表单的提交方式是get,把表单的

 

提交方式改为post试了下,发现post方式居然提交中文居然不会乱码。汗一个,难道post和get使用不同的编码提交到服

 

务器?另外还试了一种方式,根据网上的说法,把tomcat_home/conf/目录下的server.xml中Connector节点中增加

 

URIEncoding="utf-8" ,如果用get方式提交表单,中文也不会乱码。

 

从上面的小实验基本可以猜出,当页面用get方式提交时,用的编码是URIEncoding的值,如果不设这个值的话,默认值

 

不是utf-8,后来查了下tomcat的wiki,URIEncoding的默认编码是ISO-8859-1,所以get方式提

 

交中文会乱码。

 

根据tomcat的wiki可以发现:

1.get方式是通过url来传数据的,默认是使用ISO-8859-1的方式来编码数据。要改变get的默认编码方式可以通过修改

 

Connector节点中的URIEncoding的值。

 

2.post传数据时,使用的编码方式和post是不同的。post方式依据的是什么编码来提交数据呢?还有待查资料。

 
 
补充:刚测试了下,可以排除post的编码和

<meta http-equiv="content-type" content="text/html;charset=xxx"> 中 chartset有关。

我刚用的charset=gb2312,提交"春节"两个字,发现提交给后台的是:name=%E6%98%A5%E8%8A%82 ,  

这对应的是utf-8编,因为"春节"的gb2312对应的值是:%b4%ba%bd%da 

分享到:
评论

相关推荐

    tomcat GET请求与POST请求

    当客户端发送一个GET或POST请求到Tomcat时,服务器会通过Servlet容器解析请求,然后根据请求方法调用相应的Servlet方法。对于GET请求,Servlet的`doGet()`方法会被调用;而对于POST请求,对应的则是`doPost()`方法。...

    J2EE以GET和POST方式提交表单的乱码解决(受教了)

    下面我们将深入探讨如何解决J2EE环境下GET和POST方式提交表单时出现的乱码问题。 首先,我们要理解GET和POST的区别。GET方式会将表单数据附加到URL后面,而POST方式则将数据放在请求体中。由于GET方式的限制,它...

    Tomcat PostGet 中文編碼處理方法

    通过合理配置Tomcat服务器以及使用适当的过滤器,可以有效解决GET和POST请求中的中文编码问题。此外,选择合适的框架(如Spring)也可以大大简化这一过程。开发者应该根据项目实际情况选择最合适的方法来确保应用...

    get和post的区别

    - 使用HTML表单时,通常在`&lt;form&gt;`标签内指定`method="POST"`和`action`属性来定义数据提交的目标URL。 #### 3. 安全性 - **GET**: - 参数直接显示在URL中,容易被浏览器历史记录、缓存或日志文件等记录下来。 ...

    tomcat字符编码总结

    - **问题**: 当使用GET方式提交表单时,如果URIEncoding不是UTF-8,则可能会出现乱码。 - **解决方案**: 将`server.xml`中的URIEncoding设置为UTF-8,或者在接收数据时手动进行编码转换。 **2. 表单POST提交** - *...

    tomcat中文编码问题

    当使用POST方法提交包含中文的表单数据时,需要先设置`request`对象的字符编码: ```java request.setCharacterEncoding("UTF-8"); String param = request.getParameter("paramName"); ``` 为了简化这一过程,...

    台和web简单demo 3,表单提交 form get

    表单的提交方式有两种:GET和POST。在这个例子中,我们关注的是GET请求。 GET请求是HTTP协议中最常见的方法之一,用于向服务器请求资源。当用户点击表单的提交按钮时,浏览器会将表单数据附加到URL后面,以问号(?...

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

    总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...

    Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交_Java_杨秀璋的专栏-CSDN博客1

    当用户填写表单并点击提交按钮后,浏览器将向服务器发送POST请求,MyEclipse中的Tomcat服务器将加载并执行MyServlet,处理请求并返回响应。 总之,Servlet是Java EE的重要组成部分,它为开发动态Web应用提供了强大...

    用Filter来解决中文表单提交问题

    在`TomcatFormFilter`的代码中,我们看到这个过滤器主要解决了Tomcat服务器下中文表单提交时的乱码问题。它创建了一个名为`Request`的内部类,该类继承自`HttpServletRequestWrapper`,目的是为了封装原始的`...

    tomcat5中文问题完美解决

    1. Tomcat5默认使用ISO-8859-1编码处理表单(POST)提交的数据。 2. 对于GET请求,Tomcat5采取不同于POST请求的处理方式,导致设置`REQUEST.setCharacterEncoding("GBK")`无效。 **解决办法:** **方法一:实现...

    Tomcat 中文问题及解决方法总结

    本文总结了Tomcat 4.0 和 4.1 版本下常见的中文问题及其解决方案,包括JSP页面中文显示问题、POST和GET方式提交表单中文乱码问题以及Cookie中中文字符处理问题。通过以上方法,可以有效解决Tomcat中文环境中出现的...

    解决Tomcat修改get提交请求乱码问题

    同时,如果表单是以POST方式提交,确保表单的`method`属性设置为`post`,因为如上所述,GET方式下的Spring编码过滤器不会起作用。 2. **配置Spring的编码过滤器**:在`web.xml`文件中,添加或更新`...

    Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作_Java_杨秀璋的专栏-CSDN博客1

    本文将深入探讨Java Web开发中的Servlet在处理表单提交以及与数据库交互的基础知识。我们将通过一个具体的例子来展示如何使用MyEclipse、Tomcat和MySQL进行集成开发。 1. **Servlet表单提交** 在Java Web应用中,...

    超强过滤器彻底解决JSP-SERVLET中文参数GET-POST传递的问题(转)

    当JSP页面中的表单提交含有中文字符的数据时,GET请求将这些数据附加到URL后面,而POST请求则将数据放在请求体中。浏览器和服务器之间可能存在不同的字符编码标准,如UTF-8、GBK等,如果不一致,就可能导致乱码。...

    使用Post方式提交数据到Tomcat服务器的方法

    5. 在JSP页面中创建POST表单,设置`method="post"`和`action`属性。 了解这些步骤后,你就能实现通过POST方式向Tomcat服务器提交数据的功能。这在处理需要传输大量数据或保护用户隐私的场景中尤其重要。

    解决表单post,get到springMVC后台乱码的问题

    在 Spring MVC 框架中,处理表单提交数据时可能会出现乱码问题,尤其是在使用 POST 或 GET 请求时。这篇文章将分享解决表单post,get到springMVC后台乱码的问题的方法,并对相关知识点进行详细的解释。 乱码问题的...

    tomcat request.getParameter 乱码

    在Java Web开发过程中,经常会遇到通过`HttpServletRequest`对象的`getParameter`方法获取前端表单提交的数据时出现乱码的情况。特别是当使用Apache Tomcat作为应用服务器,并且表单数据中含有中文字符时,该问题尤...

    Tomcat 5.5中应用开发过程中中文乱码的解决.docx

    当用户通过表单提交数据时,这两种方法会影响数据的编码方式。POST方式通常用于传递大量或敏感信息,而GET方式则适用于简单的查询参数。 对于GET方式的中文乱码问题,我们可以在Tomcat的配置文件`conf/server.xml`...

Global site tag (gtag.js) - Google Analytics