使用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 相关文章推荐
才发现的超链接js导致网页中GIF动画停止的解决方法
Nov 02 Javascript
javascript控制frame,iframe的src属性代码
Dec 31 Javascript
JS控制输入框内字符串长度
May 21 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
Aug 23 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
Aug 21 Javascript
基于jQuery实现Tabs选项卡自定义插件
Nov 21 Javascript
angular中的http拦截器Interceptors的实现
Feb 21 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 Javascript
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
微信小程序使用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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
PHP生成便于打印的网页
2006/10/09 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
2007/05/30 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
赔偿协议书范本
2014/04/15 职场文书
企业管理标语
2014/06/10 职场文书
基层党组织整改方案
2014/10/25 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python