使用post方法实现json往返传输数据的方法


Posted in Javascript onMarch 30, 2019

问题所在:

当我们想让应用层和http之间的所有接口都采用json,这样,客户端代码就可以纯碎用javascript的对象来编写,服务器打啊也可以纯粹的用Java的对象来编写。

我们使用的是post请求的方法,有些不同于get的方法!

客户端html代码:

<html>
<head>
<title>Hello Ajax version 5a</title>
<style type='text/css'>
* { font-family: Tahoma, Arial, sans-serif; }
#helloTitle{ color: #48f; }
.sidebar{
 background-color: #adf;
 color: navy;
 border: solid blue 1px;
 width: 180px;
 height: 200px;
 padding: 2px;
 margin: 3px;
 float: left;
}
</style>
<script type='text/javascript' src='prototype.js'></script>
<script type='text/javascript' src='json.js'></script>
<script type='text/javascript'>
window.onload=function(){
 $('helloBtn').onclick=function(){
  var name=$('helloTxt').value;
  new Ajax.Request(
   "hello5a.jsp",
   {
    postBody:JSON.stringify({name:name}),
    onComplete:function(xhr){
     var responseObj=JSON.parse(xhr.responseText);
     update(responseObj);
    }
   }
  );
 }
}
function update(obj){
 $('helloTitle').innerHTML="<h1>Hello, <b><i>"+obj.name+"</i></b></h1>";
 var likesHTML='<h5>'+obj.initial+' likes...</h5><hr/>';
 for (var i=0;i<obj.likes.length;i++){
  likesHTML+=obj.likes[i]+"<br/>";
 }
 $('likesList').innerHTML=likesHTML;
 var recipeHTML='<h5>'+obj.initial+'\'s favourite recipe</h5>';
 for (key in obj.ingredients){
  recipeHTML+=key+" : "+obj.ingredients[key]+"<br/>";
 }
 $('ingrList').innerHTML=recipeHTML;
}
</script>
</head>
<body>
<div id='likesList' class='sidebar'>
<h5>Likes</h5><hr/>
</div>
<div id='ingrList' class='sidebar'>
<h5>Ingredients</h5><hr/>
</div>
<div>
<div id='helloTitle'>
<h1>Hello, stranger</h1>
</div>
<p>Please introduce yourself by entering your name in the box below</p>
<input type='text' size='24' id='helloTxt'></input> <button id='helloBtn'>Submit</button>
</div>
</body>
</html>

jsp代码:

<jsp:directive.page contentType="application/javascript" import="java.util.*,net.sf.json.*"/>
<%
//read the request body
String json=request.getReader().readLine(); //读取post请求主体
JSONObject jsonObj=new JSONObject(json);//解析json字符串
String name=(String)(jsonObj.get("name"));//读取解析后的对象
jsonObj.put("initial",name.substring(0,1).toUpperCase()); //添加新的值
String[] likes=new String[]{ "JavaScript", "Skiing", "Apple Pie" };
jsonObj.put("likes",likes);
Map ingredients=new HashMap();
ingredients.put("apples","3kg");
ingredients.put("sugar","1kg");
ingredients.put("pastry","2.4kg");
ingredients.put("bestEaten","outdoors");
jsonObj.put("ingredients",ingredients);
%><%=jsonObj%>  
<!--以json的形式输出对象-->

另外我们还要用到包装集:

prototype.jsjson.js

效果如下:

使用post方法实现json往返传输数据的方法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
jquery控制listbox中项的移动并排序的实现代码
Sep 28 Javascript
js格式化货币数据实现代码
Sep 04 Javascript
JavaScript中发布/订阅模式的简单实例
Nov 05 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
JavaScript中诡异的delete操作符
Mar 12 Javascript
JS简单实现城市二级联动选择插件的方法
Aug 19 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
js实现导航吸顶效果
Feb 24 Javascript
深入理解令牌认证机制(token)
Aug 22 Javascript
javascript刷新父页面方法汇总详解
Oct 10 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
Aug 06 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
Mar 30 #Javascript
微信公众平台获取access_token的方法步骤
Mar 29 #Javascript
vue路由--网站导航功能详解
Mar 29 #Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 #Javascript
微信小程序实现获取小程序码和二维码java接口开发
Mar 29 #Javascript
详解vue项目打包步骤
Mar 29 #Javascript
jQuery实现动态添加和删除input框代码实例
Mar 29 #jQuery
You might like
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
yii中widget的用法
2014/12/03 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
JQquery的一些使用心得分享
2012/08/01 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
python读取LMDB中图像的方法
2018/07/02 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
护士实习自我鉴定
2013/10/22 职场文书
求职自荐信的格式
2014/04/07 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
云冈石窟导游词
2015/02/04 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
如何写好竞聘报告
2019/04/03 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript