一、传统web开发
需要浏览器支持html模式,而多元化的应用像小程序等无法支持html
二、RESTful风格
1.介绍
REST:表现层状态转换,资源在网络中以某种表现形式进行状态转移
RESTful: 是基于REST理念的一套开发风格,是具体的开发规则
2.RESTful开发规则
使用url作为用户交互入口
明确的语义规范(GET|POST|PUT|DELETE)
只返回数据(JSON|XML),不包含任何展现
3.命名要求
4.RestController与路径变量
@RestController:注解的类,默认方法都是返回字符串,等同于方法上加上@ResponseBody
路径变量的使用:
针对于请求:/restful/request/8
5. 简单请求与非简单请求
简单请求:指标准结构的HTTP请求,对应GET/POST请求
非简单请求:复杂要求的HTTP请求,指PUT/DELETE、 扩展标准请求
两者最大的区别就是:非简单请求发送前需要发送预检请求
springmvc支持非简单请求,需配置:
6.jackson对springmvc的支持
引入相应jar:jackson-core 、jackson-databind、jackson-annotations后,控制器返回实体类时,将自动序列号为JSON字符串
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跨域注解
<mvc:cros>--springmvc全局跨域配置