10005---SpringMVC REST

来源:互联网 发布:手机qq游戏大厅mac版 编辑:程序博客网 时间:2024/06/03 07:33


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用来源。

示例:
– /order/1 HTTPGET:得到id = 1order
– /order/1 HTTPDELETEid = 1order
– /order/1 HTTPPUT:更新id = 1order
– /order HTTPPOST:新增order
HiddenHttpMethodFilter浏览form只支持GETPOST 请求,

DELETEPUTmethod并不支持,Spring3.0添加了一个过滤器,可以将转换
为标准的http方法,使得支持GETPOSTPUTDELETE 请求。

/**
  * Rest 风格的 URL. 以 CRUD 为例: 新增: /order POST 修改:/order/1 PUT update?id=1

   获取:/order/1 GET get?id=1 删除: /order/1 DELETE delete?id=1
  *
  * 如何发送 PUT 请求和 DELETE 请求呢 ? 1. 需要配置 HiddenHttpMethodFilter 2. 需要发送 POST 请求
  * 3. 需要在发送 POST 请求时携带一个 input type=hidden name="_method" 的隐藏域, value= DELETE 或 PUT
  *
  * 在 SpringMVC 的目标方法中如何得到 id 呢? 使用 @PathVariable 注解

======================

jsp 页面

 <form method="post" action="springmvc/testRest/2">
     <input type="hidden" value="delete" name="_method"/>
     <input type="submit" value="RestDelete" />
 </form>

 Java程序(Controller)

 @RequestMapping(value="/testRest/{id}", method=RequestMethod.DELETE)
 public String testRestDelete(@PathVariable(value="id") Integer id){
  System.out.println("testRest Delete-->" + id);
  return SUCCESS;
 }

web.xml

  <!-- 配置HiddenHttpMethodFilter -->
  <filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

 

0 0