【SpringMVC】URL请求的RestFul风格
文章目录
一、概念
RestFul是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
二、RestFul风格的优点
简洁
在传统的url(以get为例)中,在url中传值的风格是下面这样的:
http://localhost:8080/t1?a=5&b=6
而在使用RestFul风格后,变成了这样:
http://localhost:8080/t1/5/6
高效
更易于实现缓存等机制,这个到后面会讲解。
安全
为什么说RestFul风格会更加安全呢?其实从url中的显示就可以看出来。
在传统的url中,我们的参数名都是裸露在外边的,但是在RestFul中的url中只会显示参数值,并不会显示参数名,这一点可以很好的保护代码的不可见性。
三、实现RestFul风格
使用到的注解:
@Controller:略
@RequestMapping:略
@GetMapping:这个注解的含义是,只有GET请求才能请求到此方法。
@PostMapping:这个注解的含义是,只有POST请求才能请求到此方法。
@PathVariable:在给参数标记上此注解后,那么就意味着我们可以通过RestFul风格给参数传递参数l。
通过@RequestMapping实现GET:
@RequestMapping(value = "/t1/{a}/{b}", method = RequestMethod.GET)
public String test01(@PathVariable int a, @PathVariable int b, Model model){
model.addAttribute("msg","结果为:"+(a+b));
return "test";
}
注意:@RequestMapping的默认请求方式GET和POST都可以,但是我们可以手动限制请求方式,通过method =
RequestMethod.XXX。
当我们使用method时,那么请求路径要通过“value”或“path”声明。
通过@GetMapping实现GET:
@GetMapping("/t1/{a}/{b}")
public String test01(@PathVariable int a, @PathVariable int b,Model model){
model.addAttribute("msg","结果为:"+(a+b));
return "test";
}
通过@RequestMapping实现POST:
@RequestMapping(value = "/t1/{a}/{b}", method = RequestMethod.POST)
public String test02(@PathVariable int a, @PathVariable int b, Model model){
model.addAttribute("msg","结果为:"+(a+b));
return "test";
}
注意:@RequestMapping的默认请求方式GET和POST都可以,但是我们可以手动限制请求方式,通过method =
RequestMethod.XXX。
当我们使用method时,那么请求路径要通过“value”或“path”声明。
通过@PostMapping实现POST:
@PostMapping("/t1/{a}/{b}")
public String test02(@PathVariable int a, @PathVariable int b,Model model){
model.addAttribute("msg","结果为:"+(a+b));
return "test";
}
四、测试
GET请求:
Post请求:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>form</title>
</head>
<body>
<form action="/t1/5/6" method="post">
<input type="submit">
</form>
</body>
</html>
上一篇: arthas安装
下一篇: Ajax之RESTful风格的PUT请求
推荐阅读
-
JS获取url参数,JS发送json格式的POST请求方法
-
遇到项目RESTful改造时怎么用ajax的$post方法请求api接口?
-
htaccess 将所有请求重定向到某个URL地址的规则
-
php处理restful请求的路由类分享
-
springMVC获取requestMapping、restful风格中路径的参数
-
SpringMVC环境下实现的Ajax异步请求JSON格式数据
-
浏览器输入url到发起http请求所经历的过程
-
HTTP协议的URL格式、请求消息介绍
-
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
-
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题