【SpringMVC】05 RestFul风格

什么是RestFul风格?

一个资源定位和资源操作的风格,不是标准,也不是协议,

基于此风格的路径访问可以隐藏真实的参数传递,以提高网站的安全访问


以往的请求参数:

jdbc:mysql://localhost:3306/mybatis?serverTimezone=Aisa/Shanghai

很明显,每次连接都带有一个问号加上KV对的参数

如果使用RestFul,我们就会像访问一个资源一样,传递KV参数


演示案例:

控制器

package cn.dai.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;

/**
 * @author ArkD42
 * @file SpringMVC
 * @create 2020 - 05 - 06 - 21:33
 */
@Controller
public class RestFulController {
    
    @RequestMapping("/getSum/{a}/{b}")
    public String restful(@PathVariable int a,@PathVariable int b, Model model){
        int sum = a + b;
        model.addAttribute("sum",sum);
        return "rest";
    }
}

接受的jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <p>使用RestFul传递参数,并处理: ${sum}</p>
</body>
</html>

访问:

@PathVariable 路径变量

被注解的形参变量,就表示映射路径传递的字符

RestFul表达式【{param}】

参数必须以大括号修饰,才能被上面的注解映射


除上面的功能之外,我们还可以配合请求映射进行分别处理

可以设置请求的方法是哪种的,再来处理,如果不是来自Get方式请求的URL,将不会被处理

请求方式可以设置为这些

这个RequestMapping还可以再简写为具体的请求方式注解

也就是说,对同一URL的路径,请求的方式不一样,都可以实现不同处理

例如这样:

另外这么做要注意一点:

不要设置同样的请求路径的基础上设置同样的请求方式,SpringMVC将会报Mapping歧义异常

它无法判断你到底是需要这两个方法的哪一种来处理

原文地址:https://www.cnblogs.com/mindzone/p/12839221.html