使用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 相关文章推荐
javascript中直接写php代码的方法
Jul 31 Javascript
js 针对html DOM元素操作等经验累积
Mar 11 Javascript
jQuery实现鼠标经过图片预览大图效果
Apr 10 Javascript
javascript实现的多个层切换效果通用函数实例
Jul 06 Javascript
JS实现弹性菜单效果代码
Sep 07 Javascript
简单实现bootstrap选项卡效果
Feb 08 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
js微信分享实现代码
Oct 11 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
JavaScript惰性载入函数实例分析
Mar 27 Javascript
NestJs使用Mongoose对MongoDB操作的方法
Feb 22 Javascript
关于对TypeScript泛型参数的默认值理解
Jul 15 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/07/17 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
Ionic快速安装教程
2016/06/03 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
Python 异常处理实例详解
2014/03/12 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
python+opencv实现阈值分割
2018/12/26 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
基于python 凸包问题的解决
2020/04/16 Python
如何理解python面向对象编程
2020/06/01 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
女性时尚在线:IVRose
2019/02/23 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
如何获得EntityManager
2014/02/09 面试题
初中同学聚会邀请函
2014/02/03 职场文书
汇源肾宝广告词
2014/03/20 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
个人作风建设心得体会
2014/10/22 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis