使用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中的Split使用方法与技巧
Mar 09 Javascript
javascript smipleChart 简单图标类
Jan 12 Javascript
Jquery获取复选框被选中值的简单方法
Jul 04 Javascript
Extjs实现进度条的两种便捷方式
Sep 26 Javascript
js获取和设置属性的方法
Feb 20 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
Oct 31 Javascript
JS获取表格内指定单元格html内容的方法
Mar 31 Javascript
使用Node.js处理前端代码文件的编码问题
Feb 16 Javascript
初步使用bootstrap快速创建页面
Mar 03 Javascript
jQuery获取radio选中项的值实例
Jun 18 Javascript
jQuery实现的表格展开伸缩效果实例
Sep 07 Javascript
vue element和nuxt的使用技巧分享
Jan 14 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
php 无限极分类
2008/03/27 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
Vue组件化开发思考
2018/02/02 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
python实现360的字符显示界面
2014/02/21 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
python面试题小结附答案实例代码
2019/04/11 Python
python mysql断开重连的实现方法
2019/07/26 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
五年级音乐教学反思
2014/02/06 职场文书
公司员工检讨书
2014/02/08 职场文书
2015年度保密工作总结
2015/04/24 职场文书
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers