欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC的REST風格的四種請求方式總結

 更新時間:2017年08月29日 08:35:24   作者:AltErNatiVe  
下面小編就為大家?guī)硪黄猄pringMVC的REST風格的四種請求方式總結。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、 在HTTP 協(xié)議里面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。

它們分別對應四種基本操作:

  1、GET ====== 獲 取資源
  2、POST ======新建資源
  3、PUT======= 更新資源
  4、DELETE==== 刪除資源

  

二、REST:即 Representational State Transfer。(資源)表現(xiàn)層狀態(tài)轉化。是目前最流行的一種互聯(lián)網軟件架構。它結構清晰、符合標準、易于理解、擴展方便, 所以正得到越來越多網站的采用。

我們可以通過rest風格占位符方式,利用@PathVariable注解將占位符的值賦給調用方法參數(shù),實現(xiàn)結果:

/某路徑/1 HTTP GET : 得到 id = 1 的 一條數(shù)據
/某路徑/1 HTTP DELETE: 刪除 id = 1的 一條數(shù)據
/某路徑/1   HTTP PUT: 更新id = 1的 一條數(shù)據
/某路徑 HTTP POST: 新增一條數(shù)據

實現(xiàn)方式(REST風格四種請求方式的調用):

我們通過@RequestMapping映射請求中的method參數(shù)實現(xiàn)四種請求方式的調用,以下為示例代碼。

GET請求:

@RequestMapping(value="/student",method=RequestMethod.GET)
 public ModelAndView toAddPage(){
  ModelAndView mView=new ModelAndView();
  mView.addObject("employee",new Employee());
  mView.setViewName("add-stu");
  mView.addObject("departments", departmentDao.getDepartments());
  return mView;
 }

POST請求:

@RequestMapping(value="/student",method=RequestMethod.POST)
 public String addStu(Employee employee){
  employeeDao.save(employee);
  return "redirect:/show" ;
 }

DELETE請求:

@RequestMapping(value="/student/{id}",method=RequestMethod.DELETE)
 public String deleteStu(@PathVariable(value="id") Integer id){
  employeeDao.delete(id);
  return "redirect:/show" ;
 }

PUT請求:

@RequestMapping(value="/student",method=RequestMethod.PUT)
 public String Update(@RequestParam(value="id")Integer id,Employee employee){
  employeeDao.save(employee);
  return "redirect:/show" ;
 }

三、將POST請求轉化為put請求和delele請求

1.在web.xml文件中配置HiddenHttpMethodFilter過濾器:

<!-- HiddenHttpMethodFilter過濾器可以將POST請求轉化為put請求和delete請求! -->
   <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>

2.在表單域中需要攜帶一個name值為_method,value值為put或者delete的參數(shù),如下所示:

<form action="" method="post">
 <input type="hidden" name="_method" value="delete">
</form>
<form:form action="${pageContext.request.contextPath}/student" method="post" modelAttribute="employee">
  <c:if test="${empty employee.id }">
   姓名:<form:input path="lastName"/><br>
  </c:if>
  <c:if test="${!empty employee.id }">
   姓名:<form:input path="lastName" readonly="true"/><br>
    <form:hidden path="id"/>
    <input type="hidden" name="_method" value="put">
  </c:if>
  郵箱:<form:input path="email"/><br>
  <%
   Map<String,Object>map=new HashMap<String,Object>();
   map.put("1","Male");
   map.put("0", "Female");
   request.setAttribute("genders", map);
  %>
  性別:<form:radiobuttons path="gender" items="${genders}"/><br>
  部門:<form:select path="department.id" items="${departments}" itemValue="id" itemLabel="departmentName"></form:select><br>
  <input type="submit" value="提交">
 </form:form>

最后在Controller層調用即可。根據@RequestMapping的value值以及攜帶的參數(shù)、請求方式查找匹配函數(shù)。

以上這篇SpringMVC的REST風格的四種請求方式總結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 淺談java 字符串,字符數(shù)組,list間的轉化

    淺談java 字符串,字符數(shù)組,list間的轉化

    下面小編就為大家?guī)硪黄獪\談java 字符串,字符數(shù)組,list間的轉化。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 深入理解SpringCloud之Eureka注冊過程分析

    深入理解SpringCloud之Eureka注冊過程分析

    eureka是一種去中心化的服務治理應用,其顯著特點是既可以作為服務端又可以作為服務向自己配置的地址進行注冊,這篇文章主要介紹了深入理解SpringCloud之Eureka注冊過程分析
    2018-05-05
  • JavaWeb學習過程之MVC查詢模式詳解

    JavaWeb學習過程之MVC查詢模式詳解

    這篇文章主要介紹了JavaWeb學習過程之MVC查詢模式詳解的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • 詳解Java的Hibernate框架中的Interceptor和Collection

    詳解Java的Hibernate框架中的Interceptor和Collection

    這篇文章主要介紹了Java的Hibernate框架中的Interceptor和Collection,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2016-01-01
  • Java實現(xiàn)自定義LinkedList類的示例代碼

    Java實現(xiàn)自定義LinkedList類的示例代碼

    LinkedList類跟ArrayList類不同,它通過指針以及結點的操作對鏈表進行增刪改查。本文就來和大家分享下Java如何為實現(xiàn)自定義LinkedList類,需要的可以參考一下
    2022-08-08
  • 谷歌二維碼引擎com.google.zxing二維碼生成與解析

    谷歌二維碼引擎com.google.zxing二維碼生成與解析

    這篇文章主要給大家介紹了關于谷歌二維碼引擎com.google.zxing二維碼生成與解析的相關資料,zxing是google開源的二維碼生成和解析工具,需要的朋友可以參考下
    2023-07-07
  • Java實現(xiàn)搶紅包功能

    Java實現(xiàn)搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • RocketMQ發(fā)送事務消息詳解

    RocketMQ發(fā)送事務消息詳解

    這篇文章主要介紹了RocketMQ發(fā)送事務消息詳解,RocketMQ分布式事務消息不僅可以實現(xiàn)應用之間的解耦,又能保證數(shù)據的最終一致性,傳統(tǒng)的大事務可以被拆分為小事務,不僅能提升效率,還不會因為某一個關聯(lián)應用的不可用導致整體回滾,需要的朋友可以參考下
    2023-09-09
  • java 分行讀取實例

    java 分行讀取實例

    今天小編就為大家分享一篇java 分行讀取實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 使用Java開發(fā)實現(xiàn)OAuth安全認證的應用

    使用Java開發(fā)實現(xiàn)OAuth安全認證的應用

    這篇文章主要介紹了使用Java開發(fā)實現(xiàn)OAuth安全認證的應用的方法,OAuth安全認證經常出現(xiàn)于社交網絡API應用的相關開發(fā)中,需要的朋友可以參考下
    2015-11-11

最新評論