前后端交互---数据在各层传输的

574 篇文章 4 订阅
      http协议是应用层协议,http报文是字符串形式的(头+报文体),所以在应用层来说,交互都是**字符串**形式的交互。各种json库提供json对象,是json的一种存储和操作对象,主要为方便开发者的,想想你直接操作一个json字符串该有多费劲。http支持各种格式数据的传输,这个类型可以在content-type 中指定。所以,传输一个数字或者一个字符都是允许的。
tcp协议数据交互是以 stream流传输   ;  udp协议是以 datagram形式传输。
比如 tcp 是使用  stream socket   传输数据  ;   udp是以datagram socket 进行通讯;

摘取OSI网络7层协议

OSI是一个开放性的通信系统互连参考模型,它是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 ;其中高层(7654)定义了应用程序的功能,下面3(321)主要面向通过网络的端到端,点到点的数据流。

应用层 : http /ftp/ssh协议

表示层、会话层(省略)

传输层 :tcp /udp

网络层 : ip

数据链路层 : MAC地址(网卡地址,全局唯一)

物理层 : 转化为 二进制流

后台@RequestBody接收的是一个json格式的字符串(一定是一个字符串)

1、Json对象:

先介绍一下json对象,对象的属性是可以用:对象.属性进行调用的。例如:

var person={"name":"zhangsan","sex":"男","age":"24"}//json对象

alert(person.name);//zhangsan

alert(typeof person);//person的类型,为object类型

---

2、Json字符串:JavaScript中的字符串是单引号或者双引号引起来的

var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串

alert(person);//{"name":"zhangsan","sex":"男","age":"24"}

alert(typeof person);//person的类型,为string类型

---

3、JSON字符串和JOSN对象的转换

json字符串--->json对象:

var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串

var personObject = JSON.parse(person);

json对象--->json字符串:

var person={"name":"zhangsan","sex":"男","age":"24"};//json对象

var personString = JSON.stringify(person);

在SpringMVC中基于REST开发时,前端传入后台的应该是一个json格式的字符串,而不是一个json对象

---

案例:

    $.ajax({ 
            type:"POST", 
            url:"user/saveUser", 
            dataType:"json",      
            contentType:"application/json",               
            data:JSON.stringify(saveData), 
            success:function(data){ 
            } 
         });
ajax请求的时候也要指定dataType: “json”,contentType:”application/json” 这样就可以轻易的将一个对象或者List传到Java后台

@Controller
@RequestMapping(value = "saveUser") 
@ResponseBody  
public void saveUser(@RequestBody List<User> users) { 
    userService.batchSave(users); 
} 
后台用@RequestBody将其封装到List<User>中。然后进入Service层

那么 JSON的类型有哪些?

1.jsons数组类型



var json1=[

{ "firstName":"John" , "lastName":"Doe" },

{ "firstName":"Anna" , "lastName":"Smith" },

{ "firstName":"Peter" , "lastName": "Jones" }

];

2.json对象类型

var json2= { "firstName":"John" , "lastName":"Doe" };
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值