1. 程式人生 > 實用技巧 >SpringMVC-05-Restful風格

SpringMVC-05-Restful風格

  • 概念

    Restful就是一個資源定位及資源操作的風格。不是標準也不是協議,只是一種風格。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制

  • 功能

    • 資源:網際網路所有的事物都可以被抽象為資源

    • 資源操作:使用POST、DELETE、PUT、GET,使用不同方法對資源進行操作。

      分別對應 新增、 刪除、修改、查詢

  • 傳統方式操作資源和使用RESTful操作資源對比

    • 傳統方式操作資源通過不同的引數來實現不同的效果,

      方法單一,只能用post 和 get

    • 使用RESTful操作資源可以通過相同的請求方式來實現不同的效果,

      如下:請求地址一樣,但是功能可以不同!

    • 查詢

      傳統方式:查詢,GET
      http://127.0.0.1/item/queryItem.action?id=1

      RESTful:http:查詢,GET
      http://127.0.0.1/item/1
    • 新增

      傳統方式:新增,POST
      http://127.0.0.1/item/saveItem.action

      RESTful:新增,POST
      http://127.0.0.1/item
    • 更新

      傳統方式:更新,POST
      http://127.0.0.1/item/updateItem.action

      RESTful:更新,PUT
      http://127.0.0.1/item
    • 刪除

      傳統方式:刪除,GET或POST
      http://127.0.0.1/item/deleteItem.action?id=1

      RESTful:刪除,DELETE
      http://127.0.0.1/item/1
  • @PathVariable

    讓方法引數的值對應繫結到一個URL模板變數上

    @Controller
    public class RestFulController {

    //對映訪問路徑
    @RequestMapping("/commit/{p1}/{p2}")
    public String index(@PathVariable int p1, @PathVariable int p2, Model model){

    int result = p1 + p2;
    //Spring MVC會自動例項化一個Model物件用於向檢視中傳值
    model.addAttribute("msg","結果:" + result);
    //返回檢視位置
    return "test";
    }
    }
  • 使用@RequestMapping註解裡的method屬性指定請求型別

    • 用於約束請求的型別,可以收窄請求範圍

      示例:對映訪問路徑,必須是POST請求

      @RequestMapping(value = "/hello",method = {RequestMethod.POST})
      public String index2(Model model){
      model.addAttribute("msg", "hello!");
      return "test";
      }
    • 方法級別的註解變體有如下幾個:組合註解

      @GetMapping
      @PostMapping
      @PutMapping
      @DeleteMapping
      @PatchMapping