相信搞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方式依据的是什么编码来提交数据呢?还有待查资料。
<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
相关推荐
当客户端发送一个GET或POST请求到Tomcat时,服务器会通过Servlet容器解析请求,然后根据请求方法调用相应的Servlet方法。对于GET请求,Servlet的`doGet()`方法会被调用;而对于POST请求,对应的则是`doPost()`方法。...
下面我们将深入探讨如何解决J2EE环境下GET和POST方式提交表单时出现的乱码问题。 首先,我们要理解GET和POST的区别。GET方式会将表单数据附加到URL后面,而POST方式则将数据放在请求体中。由于GET方式的限制,它...
通过合理配置Tomcat服务器以及使用适当的过滤器,可以有效解决GET和POST请求中的中文编码问题。此外,选择合适的框架(如Spring)也可以大大简化这一过程。开发者应该根据项目实际情况选择最合适的方法来确保应用...
- 使用HTML表单时,通常在`<form>`标签内指定`method="POST"`和`action`属性来定义数据提交的目标URL。 #### 3. 安全性 - **GET**: - 参数直接显示在URL中,容易被浏览器历史记录、缓存或日志文件等记录下来。 ...
- **问题**: 当使用GET方式提交表单时,如果URIEncoding不是UTF-8,则可能会出现乱码。 - **解决方案**: 将`server.xml`中的URIEncoding设置为UTF-8,或者在接收数据时手动进行编码转换。 **2. 表单POST提交** - *...
当使用POST方法提交包含中文的表单数据时,需要先设置`request`对象的字符编码: ```java request.setCharacterEncoding("UTF-8"); String param = request.getParameter("paramName"); ``` 为了简化这一过程,...
表单的提交方式有两种:GET和POST。在这个例子中,我们关注的是GET请求。 GET请求是HTTP协议中最常见的方法之一,用于向服务器请求资源。当用户点击表单的提交按钮时,浏览器会将表单数据附加到URL后面,以问号(?...
总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...
当用户填写表单并点击提交按钮后,浏览器将向服务器发送POST请求,MyEclipse中的Tomcat服务器将加载并执行MyServlet,处理请求并返回响应。 总之,Servlet是Java EE的重要组成部分,它为开发动态Web应用提供了强大...
在`TomcatFormFilter`的代码中,我们看到这个过滤器主要解决了Tomcat服务器下中文表单提交时的乱码问题。它创建了一个名为`Request`的内部类,该类继承自`HttpServletRequestWrapper`,目的是为了封装原始的`...
1. Tomcat5默认使用ISO-8859-1编码处理表单(POST)提交的数据。 2. 对于GET请求,Tomcat5采取不同于POST请求的处理方式,导致设置`REQUEST.setCharacterEncoding("GBK")`无效。 **解决办法:** **方法一:实现...
本文总结了Tomcat 4.0 和 4.1 版本下常见的中文问题及其解决方案,包括JSP页面中文显示问题、POST和GET方式提交表单中文乱码问题以及Cookie中中文字符处理问题。通过以上方法,可以有效解决Tomcat中文环境中出现的...
同时,如果表单是以POST方式提交,确保表单的`method`属性设置为`post`,因为如上所述,GET方式下的Spring编码过滤器不会起作用。 2. **配置Spring的编码过滤器**:在`web.xml`文件中,添加或更新`...
本文将深入探讨Java Web开发中的Servlet在处理表单提交以及与数据库交互的基础知识。我们将通过一个具体的例子来展示如何使用MyEclipse、Tomcat和MySQL进行集成开发。 1. **Servlet表单提交** 在Java Web应用中,...
当JSP页面中的表单提交含有中文字符的数据时,GET请求将这些数据附加到URL后面,而POST请求则将数据放在请求体中。浏览器和服务器之间可能存在不同的字符编码标准,如UTF-8、GBK等,如果不一致,就可能导致乱码。...
5. 在JSP页面中创建POST表单,设置`method="post"`和`action`属性。 了解这些步骤后,你就能实现通过POST方式向Tomcat服务器提交数据的功能。这在处理需要传输大量数据或保护用户隐私的场景中尤其重要。
在 Spring MVC 框架中,处理表单提交数据时可能会出现乱码问题,尤其是在使用 POST 或 GET 请求时。这篇文章将分享解决表单post,get到springMVC后台乱码的问题的方法,并对相关知识点进行详细的解释。 乱码问题的...
在Java Web开发过程中,经常会遇到通过`HttpServletRequest`对象的`getParameter`方法获取前端表单提交的数据时出现乱码的情况。特别是当使用Apache Tomcat作为应用服务器,并且表单数据中含有中文字符时,该问题尤...
当用户通过表单提交数据时,这两种方法会影响数据的编码方式。POST方式通常用于传递大量或敏感信息,而GET方式则适用于简单的查询参数。 对于GET方式的中文乱码问题,我们可以在Tomcat的配置文件`conf/server.xml`...