使用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 动态参数判空操作
Dec 22 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
javascript上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
jQuery图片特效插件Revealing实现拉伸放大
Apr 22 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
JavaScript 控制字体大小设置的方法
Nov 23 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
Dec 02 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
Sep 18 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
Feb 08 Javascript
webstorm和.vue中es6语法报错的解决方法
May 08 Javascript
详解javascript中的babel到底是什么
Jun 21 Javascript
Vue将props值实时传递 并可修改的操作
Aug 09 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
selenium+python实现自动登录脚本
2018/04/22 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
升旗仪式主持词
2014/03/19 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
2014年营销工作总结
2014/11/22 职场文书
行政答辩状范文
2015/05/21 职场文书
民事诉讼代理词
2015/05/25 职场文书
网聊搭讪开场白
2015/05/28 职场文书