springMVC的restful风格

来源:互联网 发布:java策略模式接口意义 编辑:程序博客网 时间:2024/05/16 10:25

RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。目前主要是基于HTTP协议实现,其目的是为了提高系统的可伸缩性,降低应用之间的耦合度,便于框架分布式处理程序。

什么是RESTful架构?
a.每一个URI代表一种资源(URI,资源)
b.客服端和服务端之间,传递这种资源的某种表现层;
c.客户端通过四个HTTP动词,对服务端的资源进行操作,实现”表现层状态转化”(无状态)(统一接口)

对于资源的具体操作类型,由HTTP动词表示。(统一接口)
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
DELETE(DELETE):从服务器删除资源。
RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。

URI
可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。
一般的,每个资源至少有一个URI与之对应,最典型的URI即URL。

无状态:
对每个状态的资源请求,都不依赖其他资源或其他的请求,每个资源都有自己的URl,能对其定位,独立;
PS: 无状态更方便的使用服务器的资源;

在SSH里,如果用普通的开发方式,那么对应的CRUD分别为:
创建:
http://www.tz.edu/emp/add method: POST
获取:
http://www.tz.edu/emp/list method: GET
修改:
http://www.tz.edu/emp/update/id method: POST
删除:
http://www.tz.edu/emp/delete/id method: GET

Restful风格的URL,对应的CRUD分别为:
创建:
http://www.tz.edu/emp method: POST
获取:
http://www.tz.edu/emp/id method: GET
修改:
http://www.tz.edu/emp method: PUT
删除:
http://www.tz.edu/emp/id method: DELETE
列表:
http://www.tz.edu/emps method: GET

Restful怎么实现
SpringMVC提供了对restful风格很友好的支持
* 支持无后缀的uri匹配,是一种很优雅的restful风格的URI
* 对于html不支持的delete和put两种提交方式,提供了一个过滤器进行转化:设置一个_method=delete/put的元素,通过springmvc提供的过滤器, 能够将他转化成http协议的delete和put提交方式 ,可以在springmvc的@RequestMapping注解里面获取
a:配置hiddenHttpMethodFilter过滤器
这里写图片描述

b:在@RequesetMapping注解用指定method的方式来匹配url
c:对于http://www.tz.edu/emp/1 带参数的这种方式,需要用@PathVariable注解来接收