什么是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歧义异常
它无法判断你到底是需要这两个方法的哪一种来处理