`
JAVA天地
  • 浏览: 674209 次
  • 性别: Icon_minigender_1
  • 来自: 太原
文章分类
社区版块
存档分类
最新评论

AJAX提交数据时的中文处理

阅读更多
06年时,就开始用AJAX技术了,当时这个名词还没兴起,后来听说AJAX,才发现原来还有这个叫法。

早期,相关资料相当少,中文问题非常头疼,直到现在,网上也没有一个很好的解决方式。

最近,了解到一些朋友又深陷其中,便把自己以前的解决方法拿出来晒晒,希望对误入该行业的朋友有些帮助。

原理:html不能设置编码,但是xml可以,我们采用xml,把数据携带过去,不就可以了嘛。

js核心代码:

//注:xmlDoc,xmlHtml对象创建请用更完善的方式,这里只是简单演示一下
function doSubmit(){
var str=document.getElementById("input1").value;
//假设str就是你要提交的数据
alert(str);

//"MSXML2.DOMDocument", "Microsoft.XMLDOM", "MSXML.DOMDocument", "MSXML3.DOMDocument"
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument");

//初始化xml文档对象
xmlDoc.loadXML("<html></html>");
xmlDoc.documentElement.text=str;//作为内容去携带
//如果采用属性携带数据更方便,那么可以用下面的方法
//xmlDoc.documentElement.setAttribute("name","msg");
//xmlDoc.documentElement.setAttribute("value",str);

alert(xmlDoc.xml);//查看生成的xml内容

//"MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp";
var xmlHttp=new ActiveXObject("MSXML2.XMLHttp.5.0");
var url="servlet/MyServlet?time="+(new Date()).getTime();
xmlHttp.open("POST",url,false);
xmlHttp.send(xmlDoc);//把xml对象发送出去
alert(xmlHttp.responseText);
}

servlet/action核心代码:

// 读取ajax发送来的xml数据
SAXReader xmlReader = new SAXReader();
Document document = null;
try {
document = xmlReader.read(request.getInputStream());
} catch (Exception ex) {
System.err.println("xml读取失败,可能没有xml数据.");
ex.printStackTrace();
}
System.out.println("接收到xml数据:" + document.asXML());

// 解析xml
String str = document.getRootElement().getText();
System.out.println("解析出来的数据:" + str);

// 返回结果
response.setContentType("text/html; charset=UTF-8");// GBK也行,指明返回的编码
response.getWriter().print("服务器返回信息:成功啦!\no(∩_∩)o...哈哈!");// 返回中文也没问题啦

关键点:

js中创建xmlDom对象,以及后台的解析,后台用了dom4j,来解析xml。

源码下载:

http://www.fangwei.name/read.php?fid=14&tid=12&u=2

分享到:
评论

相关推荐

    ajax提交中文到servlet

    本文将深入探讨“ajax提交中文到servlet”的相关知识点,以解决在异步传输过程中处理中文字符的问题。 一、Ajax基础 Ajax的核心是通过JavaScript创建XMLHttpRequest对象,它允许浏览器在不重新加载整个网页的情况下...

    ajax提交表单小例子

    总结一下,AJAX提交表单的关键在于正确配置请求头,确保数据编码为UTF-8,同时服务器端也需要支持接收并处理UTF-8编码的数据。通过这种方式,我们可以实现异步表单提交,提高用户体验,同时避免了全页刷新带来的不便...

    ajax提交乱码

    在IT领域,特别是Web开发中,遇到“Ajax提交乱码”的问题是非常常见的,尤其是在处理中文或其它非英文字符集时。根据给定的文件信息,我们可以深入探讨如何使用Jquery来解决这一问题。 ### Ajax提交乱码问题的本质 ...

    ajax提交,后台中文乱码解决

    然而,在进行Ajax提交时,如果前后端的编码设置不一致,很容易导致中文字符显示为乱码。本文将基于提供的文件信息,详细解析两种解决Ajax提交后台取值中文乱码的方法。 ### 方法一:使用URL编码 在第一个示例中,...

    ajax提交中文乱码解决方法

    综上所述,解决AJAX提交中文乱码的问题主要涉及客户端和服务端两个方面的编码处理。在客户端通过`URLEncoder`进行编码,并确保Content-Type正确设置;在服务端则通过`URLDecoder`进行解码,并对Servlet容器及程序中...

    使用ajax可以传中文参数

    在使用Ajax进行数据传输时,如果请求中包含了中文字符,由于编码方式的不同,这些中文字符在服务器端解析时可能会出现乱码现象。这主要是因为客户端(浏览器)与服务器端之间对于字符集的理解不一致所导致的。 ####...

    Asp中用法JQuery的AJAX提交中文乱码解决方法_.docx

    然而,在使用AJAX时,中文乱码问题经常会出现,尤其是在Asp中使用JQuery的AJAX提交时。因此,本文将介绍如何在Asp中使用JQuery的AJAX提交中文乱码解决方法。 一、客户端页(client.html) 在客户端页中,我们使用...

    ajax实战中文版

    **Ajax 实战中文版** Ajax(Asynchronous JavaScript and XML)技术是现代Web开发中的关键组成部分,它允许在不刷新整个页面的情况下与服务器进行交互,提高了用户体验。本篇将基于《Ajax实战中文版》这本书,深入...

    java认证_Ajax中文乱码问题及解决方法.doc

    这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的解决方法: **方法一:使用`encodeURI`进行编码** 在jQuery的Ajax请求中,可以对包含中文的参数进行两次`encodeURI`编码...

    Ajax 中文手册 api

    7. **处理响应**:当状态码为200(成功)时,读取响应数据,通常是XML或JSON格式。 8. **更新页面**:使用DOM操作将新数据插入到页面适当位置。 **Ajax的优点:** 1. **页面无刷新**:提供更好的用户体验,减少了...

    ajax中文帮助文档

    6. **处理响应**:当状态码为200(成功)时,读取响应数据并更新页面。 **3. Ajax应用实例** - **表单验证**:在用户提交表单前,使用Ajax检查输入的有效性,提供实时反馈。 - **分页加载**:在滚动页面时,动态...

    jquery ajax 如何向jsp提交表单数据

    1. **URL 参数提交数据**: 这种方式适用于少量数据传输,将表单数据拼接成 URL 查询字符串并附在 AJAX 请求的 URL 后面。例如: ```javascript $.ajax({ type: "POST", url: "ajax.jsp?param1=value1&param2=...

    前台ajax与后台json传递

    在实际应用中,Ajax与Json结合使用可以实现各种复杂的交互,例如用户登录验证、表单提交、动态加载内容等。通过Ajax,我们可以实现无刷新的用户体验,而Json则简化了数据的序列化和反序列化过程,使得前后端的数据...

    Ajax中文帮助文档

    - **表单提交**:用户填写表单后,后台验证数据,无需刷新页面即可显示结果。 - **实时更新**:如聊天室、股票报价、天气预报等实时信息。 - **分页加载**:网页滚动到底部自动加载更多内容。 - **地图应用**:...

    ajax教程 中文手册

    **Ajax教程中文手册** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验。Ajax...

    AJAX实战中文版

    通过模拟数据提交、实时搜索、分页加载等常见应用场景,读者可以掌握AJAX的实际运用技巧。 总的来说,《AJAX实战中文版》是一本全面、实用的指南,不仅讲解了AJAX的基本技术,还涵盖了相关的前端开发知识和最佳实践...

    Ajax设计模式 中文

    **Ajax设计模式中文** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验。Ajax...

    ajaxForm中文文档

    AjaxForm是jQuery框架的一个插件,专门用于处理表单的Ajax提交,使得在不刷新整个页面的情况下实现数据的异步交互。这个插件不仅支持常规的Ajax提交,还支持文件上传,功能十分强大,能够满足大部分日常应用的需求。...

    JQuery AJAX提交中文乱码的解决方案

    总结来说,解决JQuery AJAX提交中文乱码问题的关键在于确保客户端和服务器端字符编码的一致性。可以通过在AJAX请求中显式地设置字符集为UTF-8来解决,从而让服务器端能够正确地解码请求中的中文字符。这不仅适用于GB...

    Ajax中文手册

    只有当服务器返回数据并准备好处理时,才会执行回调函数。 **数据格式** 虽然名字中包含XML,但Ajax并不强制使用XML作为数据格式。实际上,JSON(JavaScript Object Notation)现在更常用,因为它更简洁且易于解析...

Global site tag (gtag.js) - Google Analytics