RESTful架构
REST,即Representational State Transfer的缩写,表现层状态转化
*资源
网络上的一个实体,文本,图片,MP3文件,可以使用URI进行定位,每个资源独有一个URI,上网就是
URI定位资源的过程
* 表现层
资源的表现形式,比如文本文件使用txt格式表示等等。
严格来说URI应该代表资源的实体,不代表他的形式,网址用.html结尾作为后缀,是不必要的,这是表现层的范畴
具体表现形式应在http的请求头信息中accept和content-type指定。
* 状态转换
http协议是无状态协议,如果客户端需要操作服务器,必须通过某种手段,让服务端发生"状态转化"。这个转换是建立在
表现层之上的,就是"表现层状态转化"
客户端用到的手段是http协议,http协议里面表示操作方式的词语:
GET:获取资源
POST:新建资源
PUT:更新资源
DELETE:删除资源
总结,RESTful架构
* 每个URI代表一种资源
* 客户端和服务端传递的是资源的表现层
* 客户端通过4个http动词操作服务器资源
举个例说明:
传统方式操作资源
http://127.0.0.1/item/queryItem.action?id=1 查询,GET
http://127.0.0.1/item/saveItem.action 新增,POST
http://127.0.0.1/item/updateItem.action 更新,POST
http://127.0.0.1/item/deleteItem.action?id=1 删除,GET或POST
使用RESTful操作资源
http://127.0.0.1/item/1 查询,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1 删除,DELETE
GET,POST 请求参数,经常遇到,但是PUT、DELETE发送请求,需要注意。
tomcat默认解析post请求,PUT、DELETE请求方式默认不支持,修改tomcat的server.xml加上
SpringMVC RESTful开发
使用RESTful开发商品查询
controller方法
@RequestMapping("/{id}.action")
public @ResponseBody Item queryItemInfoById(@PathVariable Integer id){
Item item = new Item();
item.setId(1001);
item.setName("华为");
item.setTime(new Date());
item.setRemark("....");
return item;
}
SpringMVC拦截路径说明
SpringMVC的前端控制器对符合匹配规则的URI进行拦截,常见的如下
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springMVC.xml
dispatcherServlet
*.action
配置为/,对于静态资源的处理方法:
1. 在SpringMVC.xml中加上静态资源放行
2. 启用tomcat的defaultservlet处理,需要将配置放在dispatcherServlet前面
default
*.jpg
default
*.js
default
*.css
转载:http://www.ruanyifeng.com/blog/2011/09/restful.html
https://blog.csdn.net/u012730299/article/details/51872704