Spring MVC 与 Restful 风格

目录

  • 一、Restful 相关概念
    • 1、什么是 Restful?
    • 2、什么是 REST?
    • 3、Restful 的优点
    • 4、Restful 的特性
      • 1)资源(Resources)
      • 2)表现层(Representation)
      • 3)状态转化(State Transfer)
    • 5、Restful 的示例
      • 1)没有 rest 的话,原有的 url 设计:
      • 2)有了 rest ⻛格之后。
      • 3)锁定资源之后如何操作它呢?常规操作就是增删改查。
    • 6、URL
    • 7、Restful ⻛格 URL
    • 8、Restful ⻛格资源操作
    • 9、Restful ⻛格资源表述
  • 二、Spring MVC 对 Restful 的支持⻛格请求
    • 1、前端 jsp ⻚面
    • 2、后台 Handler 方法
    • 3、web.xml 中配置请求方式过滤器(将特定的 post 请求转换为 put 和 delete 请求)

毫无疑问,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>
    <h2>Spring MVC 对 Restful ⻛格 url 的支持

你可能感兴趣的:(温故日志,#,Spring,MVC,温故日志,java,spring,mvc,restful)