SpringMVC之REST

REST

Representational State Transfer。(源)表现层态转化。是目前
最流行的一件架。它结构清晰、符合准、易于理解、展方便,
所以正得到越来越多网站的采用

• 资源(Resources:网上的一个体,或者是网上的一个具体信息。它
可以是一段文本、一张图片、一首歌曲、一之就是一个具体的存在。
可以用一个URI源定位符)指向它,种资对应一个特定的 URI 。要
源,访问它的URI就可以,因此 URI 一个源的独一无二的

现层Representation源具体呈出来的形式,叫做它的表现层
Representation)。比如,文本可以用 txt 格式表,也可以用 HTML
式、XML 格式、JSON 格式表,甚至可以采用二制格式。
态转化(State Transfer出一个求,就代表了客端和服器的一
次交互程。HTTP协议,是一个无状态协议,即所有的状都保存在服
端。因此,如果客端想要操作服器,必手段,器端
态转State Transfer)。而这种转化是建立在表现层之上的,所以就是
现层态转。具体,就是 HTTP 协议里面,四个表示操作方式的
GETPOSTPUTDELETE。它别对应基本操作:GET 用来
源,POST 用来新建源,PUT 用来更新源,DELETE 用来源。

REST风格示例

– /order/1 HTTP GET :得到 id = 1 的 order   
– /order/1 HTTP DELETE:删除 id = 1的 order   
– /order/1 HTTP PUT:更新id = 1的 order   
– /order HTTP POST:新增 order

HiddenHttpMethodFilter浏览form 只支持 GET
POST 求,而DELETEPUT method 并不支
持,Spring3.0 添加了一个过滤器,可以将转换
为标准的 http 方法,使得支持 GETPOSTPUT
DELETE 求。

示例:

/**
* Rest风格的URL
* 以CRUD为例
* 新增:/order POST
* 修改:/order/1 PUT
* 获取:/order/1 GET
* 删除:/order/1 DELETE
* @param id
* @return
*/

@RequestMapping(value = "/testRest/{id}",method = RequestMethod.PUT) public String testRestPut(@PathVariable("id") Integer id){ System.out.println("testRest PUT: " + id); return SUCCESS; } @RequestMapping(value = "/testRest/{id}",method = RequestMethod.DELETE) public String testRestDelete(@PathVariable("id") Integer id){ System.out.println("testReset DELETE: " + id); return SUCCESS; } @RequestMapping(value = "/testRest",method = RequestMethod.POST) public String testRestPost(){ System.out.println("testRest POST"); return SUCCESS; } @RequestMapping(value = "/testRest/{id}",method = RequestMethod.GET) public String testRestGet(@PathVariable("id") Integer id){ System.out.println("testRest GET: " + id); return SUCCESS; }

jsp:

<form action="test/testRest/1" method="post">
      <input type="hidden" name="_method" value="PUT">
      <input type="submit" value="testRest PUT"/>
  </form>
  <br><br>
  <form action="test/testRest/1" method="post">
      <input type="hidden" name="_method" value="DELETE">
      <input type="submit" value="testRest DELETE"/>
  </form>
  <br><br>
  <form action="test/testRest" method="post">
      <input type="submit" value="testRest POST"/>
  </form>
  <br><br>
  <a href="test/testRest/1">Test Rest GET</a>
  <br><br>

  控制台结果:

 总结:

如果需要发送DELETE和PUT请求,需要进行如下操作:

1、需要在web.xml中配置HiddenHttpMethodFilter;
2、需要发送 POST 请求;
3、需要在发送POST请求时携带一个name="_method"的隐藏域,值为DELETE或PUT。

SpringMVC如何在方式中获取URL里面的占位符呢?

使用@PathVariable注解即可。

猜你喜欢

转载自www.cnblogs.com/stm32stm32/p/9092086.html