- 浏览: 65175 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (46)
- jvm调优相关 (3)
- java编程语言 (6)
- jQuery &css (11)
- hsf ;spring (3)
- Eclipse 相关 (1)
- 缓存 jvm相关 (2)
- 文件处理 (7)
- html post请求乱码问题 (0)
- java 表单字符处理问题 (2)
- ibitas相关 (2)
- TCP/IP相关 (1)
- 网站架构 (1)
- 编码规范和代码重构 (2)
- spring架构&java web框架原理 (2)
- java web日志相关 (1)
- 网络编程 (1)
- 其他收藏 (0)
- iReport;报表 (0)
- 包和类加载冲突 (0)
- 数据库相关 (1)
- 心得;分享;其他 (1)
- web安全相关 (0)
- 线上问题总结和处理 (0)
- mtee (0)
- xu (0)
- 可心一点 (0)
- 爬虫 (0)
最新评论
1. 在一个系统中的表单数据项很多的编辑页面的保存菜单,经常出现点击后反映迟钝的问题,经过是由于表单中获取的参数很多,由于用 post 请求方式传参之前要对表单中获取到的参数进行条件判断,然后对每个参数用 encodeURIComponent(“…”) 进行 utf-8 编码,在后台用 URLDecoder(“…”,”utf-8”) 进行解码,然后进行相应逻辑处理。这种方式由于参数很多,会进行很多次的调用函数进行编码解码动作,造成有时点击按钮时反应慢。
之前的处理方式:
function doSaveItem(){ var riskLevel=encodeURIComponent($("#riskLevelId").val()); var riskDespritionTemp=$("#riskDescriptionId").val(); if(riskDespritionTemp.length>1000){ alert("风险长度小于1000字,请重新填写!"); return; } var clientAnswer=encodeURIComponent(clientAnswerTemp); var relationKeyWords=encodeURIComponent($("#relationKeyWordsId").val()); 。。。。 var viewZoomConfigStr=""; $("input[type='checkbox']:checkbox:checked").each(function(){ viewZoomConfigStr+=$(this).val()+"#"; }); $ .post('/executeSaveOperate.action?token='+Math.random()*10000000, {'riskId':riskId,'arkUser':arkUser,'riskLevel':riskLevel,'riskDesprition':riskDesprition。。。}, function(data){ alert(data); if(data=="保存成功!"){ window.location.href="/casedetails.action?riskId="+riskId; } }); }
改进后:在前端对获取到的表单参数放入到临时定义的一个 json 对象 jsonrpcRequestObject 中,然后通过:
var d={};
d["jsonrpcContent"]=encodeURIComponent(JSON.stringify(jsonrpcRequestObject)+"&rnd"+Math.random());
把所有的请求的表单参数数据放入一个 json 对象中,并进行统一的 utf-8 编码。
在后台用:
String json = request.getParameter("jsonrpcContent");
json = URLDecoder.decode(json, "utf-8");
String json =request.getParameter( "jsonrpcContent" );
json=URLDecoder.decode (json, "utf-8" );
然后利用: Map<String, Object> node = tools.Json.toObject(json, HashMap.class); 一次性转换出所有的请求参数到一个 map 结构中,这样获取到这些值就很容易了。
2. 在这其中遇到两个问题, 1. 在后台获取到 json 数据时,开始用 ObjectMapper 工具类中的 readValue(json, JsonNode.class); 转换成 JsonNode 格式,然后利用 JsonNode 的 get (“ .. ”)方法得到具体的 field 值,但是他跟 map 的不同是他在键值对中都多了一个双引号:如下
String 变量 json 的值是: {"riskId":"743","arkUser":" 余墨 ","riskLevel":"1111" (。。。省略) }&rnd0.7098155175198152
通过: Map<String,Object> node=tools.Json.toObject(json, HashMap.class); 进行 map 对象的还原时没有问题: node 的值是:
{ riskLevel=1111 arkUser= 余墨 , riskId=743 }
但是通过: private static final ObjectMapper jsonMapper;
static {
jsonMapper = Json.getObjectMapper();
}
JsonNode node=jsonMapper.readValue(json, JsonNode.class);
转换后的 node 的值:
{"riskId":"743","arkUser":" 余墨 ","riskLevel":"1111"}
这样在通过 node.get(“…”) 方法获取到具体的参数值时会出现多余的引号,也就是本想通过 node.get("riskId").toString() 得到值 743 ,但是现在却得到了 ”743”, 如果每个得到的这种参数值都通过 ”743”.repalceAll(“\””,””) 方式进行转换时会出现性能和业务上的隐患,毕竟可能通过表单传递的参数可能就有文本 ”” 引号信息。后来当然是通过前面的 Json 的工具类转换成 map 的方式。
2. ajax 请求中:
$ .ajax({
type : "post",
url : "executeSaveOperate.action",
dataType : "text",
data : d,
success : function(response){
if(response=="success"){
alert(" 保存成功! ");
window.location.href="/casedetails.action?riskId="+riskId;
}
},
error : function(response){
alert(" 保存失败! ");
}
});
有个属性值 dataType 开始误解为是传递的 post 数据的格式,结果开始写成是 dataType=”json”, 这样在后台处理后能正常通过 response 流 write ()正确的数据到前端,但是就不执行 success 函数,通过 error(jqXHR, textStatus, errorThrown) 函数打出日志, @ 夏雷定位是接受参数的格式问题,也就是 dataType 是用来表示 ajax 请求后的所期望的服务器返回数据的格式限定,如果没有明确指定, Jquery 会根据 response 流返回的 MIME 类型进行指定,常见的类型有: ”xml”,”html”,”srript”,”json”,”jsonp” 等。由于这里场景是根据返回的数据是否为“ success ”给出提示信息,因此只要用 dataType : ”text” 就可以了。
发表评论
-
JSESSION失效问题
2012-11-16 22:17 921问题:在开发环境下的页面进行数据查询时,自动跳到后台权限控制登 ... -
jquery中在一个页面中弹出编辑对话框的实例
2012-10-16 21:05 4630在web开发中,一个页面的某些字段可能需要通过弹出浮出对话框的 ... -
一个常用的页面分页插件实例
2012-10-15 18:24 1212一:(页面分页控件)页面head标签中引进: ... -
值得网站开发人员收藏的 10 个网站
2012-09-27 11:31 0http://www.chinaz.com/free/2010 ... -
12 款简化 CSS3 开发的实用工具
2012-09-27 10:19 0http://www.mangguo.org/10-usefu ... -
网页输入框的提示实现 placeholder
2012-09-21 11:51 0http://blog.csdn.net/trgoofi/ar ... -
50个必备的实用jQuery代码段
2012-09-13 15:00 0http://www.admin10000.com/docum ... -
关于http请求头和响应头的一些疑问
2012-09-12 15:27 01.请求头的值是谁设置上去的?是浏览器自己设置上去的,还是WE ... -
textarea中的输入的规则名称和规则id等生成超链接的js脚本
2012-09-12 11:24 0<script type="text ... -
js 正则表达式用法
2012-09-11 18:24 0正则表达式使用详解 ... -
js中循环获取checkbox值的方式
2012-09-10 15:26 1107在html页面的表单中,有事需要获取checkbox值,由于它 ... -
js中字符串处理的常用方法replaceAll, split , join, indexOf , Array
2012-09-10 15:16 841一:replaceAll的调用方式: 例如1:如想替 ... -
JS跳转页面方式
2012-09-07 20:32 857有的时候在vm页面中,在通过jquery post方式请求完, ... -
jquery的常用api函数总结
2012-07-20 18:00 679.attr( attributeName ): 得到 ... -
jquery/css学习心得三:js的内嵌写法和分开写法
2012-07-20 17:26 3577js可以嵌入写入到html中完成动态功能或者html和js结构 ... -
jquery学习心得(二):一个很好的css和js函数调用的例子
2012-07-18 17:55 1006统一目录下的资源结构图: index.htm ... -
jquery和css的一些学习心得(一)
2012-07-18 16:02 656最近由于项目开发需要,学习一些jquery的东东,有一些 ...
相关推荐
【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...
然而,在处理中文字符时,Ajax可能会遇到乱码问题,这通常与字符编码设置不正确有关。本文将深入探讨Ajax中文乱码问题的原因及其解决方案。 首先,我们需要理解Ajax乱码的根源。当JavaScript发送HTTP请求时,如果...
在开发过程中,尤其是在使用C#与ASP.NET进行Web开发时,经常会遇到客户端通过Ajax向服务器端发送Post请求后,服务器端接收到的数据出现乱码的问题。这种情况不仅影响用户体验,也可能会导致程序逻辑出现问题。本文将...
然而,在处理中文字符时,经常会遇到一个令人头疼的问题——中文乱码。 #### 一、问题分析 当通过AJAX向服务器发送含有中文的数据时,如果编码方式设置不当,就可能导致服务器端接收到的数据变成乱码。这主要是...
在IT领域,尤其是在Web开发中,处理中文或其他非英文字符集时,经常遇到的一个问题是乱码。这主要是因为客户端和服务器端对字符编码的理解不一致所导致的。本文将深入探讨如何利用AJAX(Asynchronous JavaScript and...
在Web开发中,尤其是在使用Java与JSP技术栈进行开发时,经常会遇到的一个问题是:如何处理AJAX请求中的中文字符乱码问题。本篇文章将详细介绍如何通过前端编码处理、后端参数接收以及响应头设置等手段来有效解决这一...
本文将深入探讨Ajax请求中传输中文字符时遇到的乱码问题及其解决方案。 首先,让我们看看问题的背景。在JavaScript中,我们经常使用jQuery的`$.ajax()`函数发送异步请求,更新服务器上的数据。在示例代码中,有一个...
在使用jQuery的Ajax功能进行数据交互时,可能会遇到中文参数乱码的问题。这通常是由于服务器与客户端之间字符编码不一致导致的。在本例中,`jQuery`的默认编码方式可能不是`UTF-8`,这使得包含中文的参数在传输过程...
本文将深入探讨Ajax乱码问题的成因及其解决方案。 首先,我们需要了解JavaScript和Unicode的关系。JavaScript内部处理字符时,采用的是Unicode编码,这是一种包含几乎全球所有语言字符的通用编码标准。而UTF-8是一...
本文将深入探讨一个关于Struts2在Internet Explorer(IE)浏览器中出现中文乱码的奇怪问题及其解决方案。 首先,中文乱码问题通常涉及到几个关键因素:数据库编码、开发文件编码和网页的Content-Type编码。在确保这...
J2EE开发中遇到的乱码问题是一个常见的困扰,尤其是在处理中文字符时。本文将详细介绍如何解决这些问题,以一个基于Eclipse 3.3 + MyEclipse 6.0 + Tomcat 5.5的项目为例,该项目采用了Ext、Struts和Hibernate框架。...
### Ajax开发过程中表单提交数据出现乱码及解决办法 在进行Ajax开发的过程中,经常会遇到一个令人头疼的问题:表单提交的数据出现乱码。这个问题主要出现在客户端与服务器端编码不一致的情况下,导致数据传输过程中...
本文将深入探讨AJAX中的乱码问题及其解决策略。 首先,我们需要了解AJAX的核心——XMLHttpRequest对象。这是JavaScript内置的对象,用于与服务器进行通信。创建XMLHttpRequest对象的代码如下: ```javascript ...
然而,在实际应用中,开发者常常会遇到AJAX请求中的编码问题,特别是POST方式提交数据时出现的乱码现象。本文将详细探讨AJAX编码问题,并提供几种解决方案。 #### 一、AJAX编码问题概述 AJAX(Asynchronous ...
### Servlet + Tomcat 中文乱码问题解析及解决方案 #### 一、中文乱码问题概述 在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致...
在使用Ajax时,可能会遇到乱码问题。这通常由于服务器返回的字符编码与页面预期的编码不一致。为解决这个问题,可以在接收到响应后设置正确的字符编码,例如: ```javascript xhr.overrideMimeType('text/plain; ...
根据提供的文件内容,我们可以提炼出以下知识点: ...同时,也展示了如何解决Ajax请求中常见的乱码问题和浏览器兼容性问题。通过实例演示,这些知识点对于理解Ajax以及JavaScript在实际开发中的应用具有重要的意义。
当遇到Ajax返回数据的乱码问题时,可以按照以上提到的方法进行排查和修复。对于不同的浏览器和环境,可能还需要针对特定情况进行兼容性处理,例如在旧版IE中使用ActiveXObject。 总之,Ajax的异步特性和回调函数...
在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下...在实际开发中,遇到问题时,阅读和理解错误信息,使用浏览器的开发者工具进行调试,以及查阅相关文档,都是解决问题的关键。