使用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 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
JS date对象的减法处理实现代码
Dec 28 Javascript
基于jquery的时间段实现代码
Aug 02 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
Angular企业级开发——MVC之控制器详解
Feb 20 Javascript
vue-router路由简单案例介绍
Feb 21 Javascript
jQuery倒计时代码(超简单)
Feb 27 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
JS使用tofixed与round处理数据四舍五入的区别
Oct 25 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
Mar 01 Javascript
微信小程序实现图片上传放大预览删除代码
Jun 28 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
8个出色的WordPress SEO插件收集
2011/02/26 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
jquery插件之easing使用
2010/08/19 Javascript
js的一些常用方法小结
2011/06/29 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
研发工程师的岗位职责
2013/11/18 职场文书
股权投资意向书
2014/04/01 职场文书
安全协议书
2014/04/23 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
单位工资证明范本
2015/06/12 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
TV动画《间谍过家家》公开PV
2022/03/20 日漫