RESTful开发风格
一、传统web开发
![](https://img.haomeiwen.com/i10077403/86f1d1de3987b11f.png)
需要浏览器支持html模式,而多元化的应用像小程序等无法支持html
二、RESTful风格
1.介绍
REST:表现层状态转换,资源在网络中以某种表现形式进行状态转移
RESTful: 是基于REST理念的一套开发风格,是具体的开发规则
![](https://img.haomeiwen.com/i10077403/cb7ccece440ff8d3.png)
2.RESTful开发规则
使用url作为用户交互入口
明确的语义规范(GET|POST|PUT|DELETE)
只返回数据(JSON|XML),不包含任何展现
3.命名要求
![](https://img.haomeiwen.com/i10077403/6b8bd3d47844b7a4.png)
4.RestController与路径变量
@RestController:注解的类,默认方法都是返回字符串,等同于方法上加上@ResponseBody
路径变量的使用:
针对于请求:/restful/request/8
![](https://img.haomeiwen.com/i10077403/f3dda4a280966a09.png)
5. 简单请求与非简单请求
简单请求:指标准结构的HTTP请求,对应GET/POST请求
非简单请求:复杂要求的HTTP请求,指PUT/DELETE、 扩展标准请求
两者最大的区别就是:非简单请求发送前需要发送预检请求
springmvc支持非简单请求,需配置:
![](https://img.haomeiwen.com/i10077403/bb2e7da15862fdd3.png)
6.jackson对springmvc的支持
引入相应jar:jackson-core 、jackson-databind、jackson-annotations后,控制器返回实体类时,将自动序列号为JSON字符串
![](https://img.haomeiwen.com/i10077403/05d7761ed7f3268a.png)
![](https://img.haomeiwen.com/i10077403/6d3ec6e72ebac5ce.png)
![](https://img.haomeiwen.com/i10077403/bcd586bfd078ede4.png)
7、浏览器的同源策略
同源策略阻止从一个域加载的脚本去获取另一个域上的资源
只要协议、域名、端口有任何一个不同,都被当做是不同的域
浏览器console看到access-control-allow-origin就代表跨域了
html中允许跨域的标签:img、link、script
8、springmvc解决跨域访问问题
8.1 cors跨域资源访问
CORS是一种机制,使用额外的http头通知浏览器可以访问其它域
url响应头包含access-control-*指明请求跨域
8.2 springmvc解决跨域问题
@CrossOrigin--controller跨域注解
![](https://img.haomeiwen.com/i10077403/c60214ab3f96d28f.png)
![](https://img.haomeiwen.com/i10077403/ab0ee94a3b14c719.png)
<mvc:cros>--springmvc全局跨域配置
![](https://img.haomeiwen.com/i10077403/94ec7abf1571f08b.png)