当前位置: 首页 > 编程笔记 >

使用post方法实现json往返传输数据的方法

田镜
2023-03-14
本文向大家介绍使用post方法实现json往返传输数据的方法,包括了使用post方法实现json往返传输数据的方法的使用技巧和注意事项,需要的朋友参考一下

问题所在:

当我们想让应用层和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.js和json.js

效果如下:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接

 类似资料:
  • 本文向大家介绍Django中使用Json返回数据的实现方法,包括了Django中使用Json返回数据的实现方法的使用技巧和注意事项,需要的朋友参考一下 在一个网站在,大量数据与前端交互,JSON是最好的传递数据方式了。 在Django中,使用JSON传输数据,有两种方式,一种是使用Python的JSON包,一种是使用Django的JsonResponse 方法一:使用Python的JSON包 我们

  • 本文向大家介绍python实现udp数据报传输的方法,包括了python实现udp数据报传输的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现UDP数据报传输的方法,非常具有实用价值。分享给大家供大家参考。具体方法分析如下: 服务端代码: 客户端代码: 结果:先运行服务端,然后运行客户端, 服务端打印出: 补充: socket.sendto(string[, flags

  • 本文向大家介绍java往php传数据操作方法,包括了java往php传数据操作方法的使用技巧和注意事项,需要的朋友参考一下 java往php传数据最近刚好做到了这一块,有php调用java的接口来返回数据,php在做数据的处理可以做到两个系统的数据库同步操作,一般是用过ajax返回json数据然后解析出来就可以了 1、首先java要往php传数据可以先在java的代码中写一个接口来给php调用,可

  • 本文向大家介绍Spring MVC前后端的数据传输的实现方法,包括了Spring MVC前后端的数据传输的实现方法的使用技巧和注意事项,需要的朋友参考一下 本篇文章主要介绍了Spring MVC中如何在前后端传输数据。具体内容如下所示: 后端——> 前端 在Spring MVC中这主要通过Model将数据从后端传送到前端,一般的写法为: 首先需要定义一个Model,然后为Model添加属性,并绑定

  • 本文向大家介绍使用mock.js随机数据和使用express输出json接口的实现方法,包括了使用mock.js随机数据和使用express输出json接口的实现方法的使用技巧和注意事项,需要的朋友参考一下 前端项目都会用到后端的接口,但当后台接口没有写好的时候,这时候可以用mock.js先随机生成一些假数据来调试页面 安装mock.js 先用express创建一个nodejs的web项目,名字假

  • 本文向大家介绍jQuery使用post方法提交数据实例,包括了jQuery使用post方法提交数据实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery使用post方法提交数据的用法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的jQuery程序设计有所帮助。