Spring MVC 与 Restful 风格

毫无疑问,Spring MVc 对 Restful ⻛格请求是支持的。

一、Restful 相关概念

1、什么是 Restful?

Restful 是一种 web 软件架构⻛格,它不是标准也不是协议,它倡导的是一个资源定位及资源操作的⻛格。

2、什么是 REST?

REST(英文:Representational State Transfer,简称 REST)描述了一个架构样式的网络系统, 比如 web 应用程序。
它并没有一个明确的标准,而更像是一种设计的⻛格。
它本身也并没有什么实用性,其核心价值在于如何设计出符合 REST ⻛格的网络接口。

3、Restful 的优点

它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

4、Restful 的特性

1)资源(Resources)

网络上的一个实体,或者说是网络上的一个具体信息。
它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。
可以用一个 URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。
要获取这个资源,访问它的 URI 就可以,因此 URI 即为每一个资源的独一无二的识别符。

2)表现层(Representation)

把资源具体呈现出来的形式,叫做它的表现层(Representation)。
比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进 制格式。

3)状态转化(State Transfer)

每发出一个请求,就代表了客户端和服务器的一次交互过程。
HTTP 协议,是一个无状态协议,即所有的状态都保存在服务器端。
因此,如果客户端想要操作服务器, 必须通过某种手段,让服务器端发生“状态转化”(State Transfer)。
而这种转化是建立在表现层之上的,所以就是“表现层状态转化”。
具体说, 就是 HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。
它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。

5、Restful 的示例

rest 是一个 url 请求的⻛格,基于这种⻛格设计请求的 url。

1)没有 rest 的话,原有的 url 设计:

http://localhost:8080/user/queryUserById.action?id=3
url 中定义了动作(操作),参数具体锁定到操作的是谁。

2)有了 rest ⻛格之后。

rest 中,认为互联网中的所有东⻄都是资源,既然是资源就会有一个唯一的 uri 标识它,代表它。
http://localhost:8080/user/3:代表的是 id 为 3 的那个用户记录(资源)。

3)锁定资源之后如何操作它呢?常规操作就是增删改查。

根据请求方式不同,代表要做不同的操作。
get 查询,获取资源;
post 增加,新建资源;
put 更新;
delete 删除资源。

rest ⻛格带来的直观体现:就是传递参数方式的变化,参数可以在 uri 中了。
/account/1 HTTP GET :得到 id = 1 的 account;
/account/1 HTTP DELETE:删除 id = 1 的 account;
/account/1 HTTP PUT:更新 id = 1 的 account。

6、URL

资源定位符,通过 URL 地址去定位互联网中的资源(抽象的概念,比如图片、视频、app服务等)。

7、Restful ⻛格 URL

互联网所有的事物都是资源,要求 URL 中只有表示资源的名称,没有动词。

8、Restful ⻛格资源操作

使用 HTTP 请求中的 method 方法 put、delete、post、get 来操作资源。分别对应添加、删除、修改、查询。不过一般使用时还是 post 和 get,put 和 delete 几乎不使用。

9、Restful ⻛格资源表述

可以根据需求对 URL 定位的资源返回不同的表述(也就是返回数据类型,比如 XML、JSON 等数据格式)。

二、Spring MVC 对 Restful 的支持⻛格请求

Spring MVC 支持 Restful ⻛格请求,具体讲的就是使用 @PathVariable 注解获取 Restful ⻛格的请求 URL 中的路径变量。

示例代码

1、前端 jsp ⻚面

<div
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jason559

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值