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,如需转载请自行联系原作者
相关文章
|
6月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
XML 前端开发 JavaScript
|
10月前
|
Java 应用服务中间件 Linux
Tomcat运行日志字符错乱/项目启动时控制台日志乱码问题
总结: 通过以上几种方法,概括如下:指定编码格式、设置JVM的文件编码、修改控制台输出编码、修正JSP页面编码和设置过滤器。遵循这些步骤,你可以依次排查和解决Tomcat运行日志字符错乱及项目启动时控制台日志乱码问题。希望这些建议能对你的问题提供有效的解决方案。
1933 16
|
JSON JavaScript 前端开发
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
256 22
|
前端开发 JavaScript
回顾前端页面发送ajax请求方式
回顾前端页面发送ajax请求方式
151 18
|
JSON 前端开发 JavaScript
Python中如何判断是否为AJAX请求
AJAX请求是Web开发中常见的异步数据交互方式,允许不重新加载页面即与服务器通信。在Python的Django和Flask框架中,判断AJAX请求可通过检查请求头中的`X-Requested-With`字段实现。Django提供`request.is_ajax()`方法,Flask则需手动检查该头部。本文详解这两种框架的实现方法,并附带代码示例,涵盖安全性、兼容性、调试及前端配合等内容,帮助开发者提升Web应用性能与用户体验。
274 0
|
前端开发 JavaScript Java
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
347 4
|
网络协议 Java 应用服务中间件
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
|
6月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1116 5
|
9月前
|
Java 应用服务中间件 Linux
在Java 12环境中配置和部署Apache Tomcat的步骤。
这段部署Tomcat的冒险旅程充满技术挑战,但同时也像游戏一样充满乐趣。它需要你提前准备,仔细执行,并随时准备解决意外情况。成功后,你就可以在这匹强壮的网络野马上,带着你的Java应用,冲向Web开发的璀璨星空。
267 56