Примечания к исследованию SpringMVC -11 Стиль RestFul

RestFul - это стиль позиционирования и работы с ресурсами, который не является ни стандартом, ни протоколом. Программное обеспечение на основе этого стиля

Может быть более кратким, более иерархичным и более простым для реализации механизма кэширования.

Традиционный способ работы с Интернетом достигается с помощью различных параметров, а методы запроса - post и get. Для разных запросов нам нужно использовать разные пути запросов:

localhost:8080/item/query?id=1
localhost:8080/item/add
localhost:8080/item/update
localhost:8080/item/delete?id=1

Используя стиль RestFul, мы можем сохранить путь запроса неизменным и вызывать разные методы через разные методы запроса для достижения разных функций:

localhost:8080/item/1   GET请求
localhost:8080/item     POST请求
localhost:8080/item     PUT请求
localhost:8080/item/1   DELETE请求

Сначала рассмотрим традиционный метод запроса: uri? Параметр 1 = значение 1 и параметр 2 = значение 2 ...

package com.zzt.Controller;

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

@Controller
public class RestFulController {
    @RequestMapping("/add")
    public String test(int a, int b, Model model){
        model.addAttribute("msg",a+b);
        return "test";
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    ${msg}
</body>
</html>

Аннотация @PathVariable: используется для реализации стиля RestFul

package com.zzt.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 {
    @RequestMapping("/add/{a}/{b}")
    public String test(@PathVariable int a,@PathVariable int b, Model model){
        model.addAttribute("msg",a+b);
        return "test";
    }
}

Взяв приведенный выше код в качестве примера, @PathVariable указывает, что значение параметра -int a происходит из {a} в uri, а значение параметра -int b происходит из {b} в uri

На данный момент получить доступ традиционным способом будет неправильно, и вы должны использовать стиль RestFul для получения параметров:

Помните, мы упоминали, что @RequestMapping может устанавливать метод запроса? Да, его можно комбинировать с этим атрибутом. (Конечно, SpringMVC также предоставляет субаннотации, @GetMapping, @PostMapping и т. Д.).

    @GetMapping("/add/{a}/{b}")
    public String testGet(@PathVariable int a,@PathVariable int b, Model model){
        model.addAttribute("msg","get请求到达 : " + (a + b));
        return "test";
    }

    @PostMapping("/add/{a}/{b}")
    public String testPost(@PathVariable int a,@PathVariable int b, Model model){
        model.addAttribute("msg","post请求到达 : "+ (a+b));
        return "test";
    }
<body>
    <a href="add/1/2">get提交方式
    <form action="add/3/4" method="post">
        <input type="submit" value="提交">
    </form>
</body>

Преимущества RestFul: краткость (устраняет проблему использования имен параметров), эффективность (механизм кэширования) и безопасность (поскольку запрос не содержит имен параметров)

 

 

 

 

 

 

 

 

 

 

рекомендация

отblog.csdn.net/qq_39304630/article/details/113094840
рекомендация