SpringMVC JQuery Ajax Get Post请求在Tomcat中乱码解决方案

简介:
SpringMVC JQuery Ajax Get Post请求在Tomcat中乱码解决方案
 
SpringMVC  3.12
JQuery 1.8.2
Tomcat 6.0.35
 
 
1、乱码很烦人,Spring mvc的@Responsebody返回数据如果不经过特殊处理,总会发生乱码,针对目前的3.1.2版本。
 
这个解决方式可以通过配置内部编码机制来解决
 
         < bean  class ="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" > 
                 < property  name ="messageConverters" > 
                         < list > 
                                 < bean  class ="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> 
                                 < bean  class ="org.springframework.http.converter.StringHttpMessageConverter" > 
                                         < property  name ="supportedMediaTypes" > 
                                                 < list > 
                                                         < value >text/html; charset=utf-8 </ value > 
                                                 </ list > 
                                         </ property > 
                                 </ bean > 
                                 < bean  class ="org.springframework.http.converter.ResourceHttpMessageConverter" /> 
                                 < bean  class ="org.springframework.http.converter.xml.SourceHttpMessageConverter" /> 
                                 < bean  class ="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" /> 
                                 < bean  class ="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" /> 
                         </ list > 
                 </ property > 
         </ bean >
 
注意:Spring mvc内部,默认的编码只有 UTF-8、iso-8859-1
 
我喜欢用UTF-8,因为JQuery等发送数据也是UTF-8模式,很多开源组件都这样,这里就统一成UTF-8了。
 
经过上面的配置后,从后台返回给页面的数据就不是乱码。
 
2、在JQuery ajax的get方式请求时候,发送给后台的中文会是乱码。这个乱码的原因和Tomcat有关系,需要指定tomcat发送数据编码格式为UTF-8,默认的是iso-8859-1。指定方式是,在Connector上加上一个配置属性:URIEncoding="UTF-8"
 
加上后,整个接点默认的配置为:
 
         < Connector  port ="8080"  protocol ="HTTP/1.1"    
                              connectionTimeout ="20000"    
                              redirectPort ="8443"  URIEncoding ="UTF-8" />
 
3、如果你喜欢GBK,那么解决以上编码问题,对你来说是一场噩梦,你需要通过复杂的过滤器处理Tomcat以及修改Spring的一些编码方式,甚至一些依赖的库也会导致乱码(如dom4j)。这时候,问题往往变得很棘手,但并非不能解决----很费劲。
 
因此建议包括数据库,都用utf-8编码,简单省劲儿。
 
4、其实编码就是数据传输的格式,真无所谓的事情,你要是喜欢,你还可以用MP3、MP4格式进行编码,只要正确解码就行了,实在没啥意义。

本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/1036209,如需转载请自行联系原作者
相关文章
|
5月前
|
前端开发 JavaScript
AJax(XHR+Get和Post+AJax的封装)
AJax(XHR+Get和Post+AJax的封装)
99 15
|
监控 网络协议 应用服务中间件
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
本文详细解析了Tomcat架构中复杂的`Connector`组件。作为客户端与服务器间沟通的桥梁,`Connector`负责接收请求、封装为`Request`和`Response`对象,并传递给`Container`处理。文章通过四个关键问题逐步剖析了`Connector`的工作原理,并深入探讨了其构造方法、`init()`与`start()`方法。通过分析`ProtocolHandler`、`Endpoint`等核心组件,揭示了`Connector`初始化及启动的全过程。本文适合希望深入了解Tomcat内部机制的读者。欢迎关注并点赞,持续更新中。如有问题,可搜索【码上遇见你】交流。
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
|
12月前
|
前端开发 JavaScript 数据处理
JQuery 拦截请求 | Ajax 请求拦截
【10月更文挑战第4天】
504 1
|
JSON 前端开发 JavaScript
jQuery AJAX 方法
jQuery AJAX 方法
109 1
|
JSON JavaScript 前端开发
Jquery常用操作汇总,dom操作,ajax请求
本文汇总了jQuery的一些常用操作,包括DOM元素的选择、添加、移除,表单操作,以及如何使用jQuery发送Ajax请求,涵盖了GET、POST请求和文件上传等常见场景。
|
XML JavaScript 前端开发
jQuery - AJAX get() 和 post() 方法
jQuery - AJAX get() 和 post() 方法
75 6
|
缓存 JavaScript 前端开发
jQuery - AJAX get() 和 post() 方法
jQuery - AJAX get() 和 post() 方法
72 4
|
JSON 前端开发 JavaScript
jQuery AJAX 方法
jQuery AJAX 方法
78 1
|
前端开发 JavaScript Java
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
关于如何在SpringBoot项目中结合JQuery和Ajax实现表单数据的传输以及单文件或多文件上传的教程。文章提供了完整的前后端示例代码,包括项目的`pom.xml`依赖配置、SpringBoot的启动类`App.java`、静态资源配置`ResourceConfig.java`、配置文件`application.yml`、前端HTML页面(单文件上传和多文件上传加表单内容)以及后端控制器`UserController.java`。文章最后展示了运行结果的截图。
687 0
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传