天天看點

SpringMVC筆記四:RestFul風格

RestFul風格

1. 概念

RestFul就是一個資源定位及資源操作的風格。不是标準也不是協定,隻是一種風格。基于這個風格設計的軟體可以更加簡介,更有層次,更易于實作緩存等機制,以及更加安全。

2. 功能

  • 資源:網際網路中所有的事物都可以被抽象為資源,可以通過url統一資源定位符通路。
  • 資源操作:使用POST,GET,PUT,DELETE等不同的方法對資源進行操作。
  • 傳統的操作資源方式:通過不同的參數來實作不同的效果。方法單一,即post和get例如:
    1. http://localhost/user/select.action?id=1
    2. http://localhost/user/delete.action?id=1
    3. http://localhost/user/update.action
    4. http://localhost/user/save.action
  • 使用RestFul風格操作資源:可以通過不同的請求方式實作不同的效果,請求位址可以一樣,但是功能可以不同,它注重的是請求方法(PUT改,GET查,DELETE删,POST增),上面的修改為RestFul風格如下
    1. http://localhost/user/1
    2. http://localhost/user/1
    3. http://localhost/user
    4. http://localhost/user

3. 示例

在上一個列子中直接添加一個Controller,上一個例子位址:https://blog.csdn.net/weixin_41549354/article/details/108139130

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RestFulController {

    //傳統方式,a跟b表示這個接口要接受的參數
    @RequestMapping("add1")
    public String test1(int a, int b, Model model) {
        model.addAttribute("msg", "相加結果為:"+(a+b));
        return "hello";
    }

    //RestFul風格
    //使用路徑變量注解@PathVariable添加到方法的參數上,讓方法參數的值綁定到一個URI模闆變量上。
    //對應的@RequestMapping注解可以改為@GetMapping("add2/{a}/{b}"),
    //類似的有@DeleteMapping("add2/{a}/{b}")等等,雖然位址一樣,但是它會根據前端送出的不同請求方式
    //識别到不同的@RequestMapping控制器中的方法。
    @RequestMapping(value="add2/{a}/{b}", method=RequestMethod.GET)
    public String test2(@PathVariable int a, @PathVariable int b, Model model) {
        model.addAttribute("msg", "相加結果為:"+(a+b));
        return "hello";
    }
}
           

通路測試

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-M94ExocF-1597954310398)(D:\我的檔案\Pictures\42.PNG)]

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-OJSa7NLp-1597954310404)(D:\我的檔案\Pictures\43.PNG)]