spring mvc 后台
在交互的过程中,其中一个关键的节点就是获取到客户端发送过来的请求参数,本篇文章,我们来罗列下SpringMVC对于各种数据的获取方式:
说明:以下重点在讲解如何获取参数上,所以返回的数据不是重点
普通方式
1,普通方式,请求参数名跟Controller的方法参数一致
1.1 创建Controller
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/request")
public class RequestController {
@ResponseBody
@RequestMapping(value = "/common", method = RequestMethod.GET)
public String common(String username, String password) {
return username+password;
}
}
@RequestMapping
注解可以指定具体的方式类型。
@ResponseBody
可以指定请求返回字符串,不指定默认返回的是页面资源信息。
请求
这种对于访问方式没有特别高的要求,get/post 都可以
http://localhost:9001/request/common?username=ryo&password=123456
别名
场景
有时候前后端的字段可能有所不同。
可以通过 @RequestParam
指定参数的别名,其他还是是否必填等多种属性指定。
定义方式
@ResponseBody
@RequestMapping("/alias")
public String alias(@RequestParam("name") String username,
@RequestParam("pwd") String password) {
return username+password;
}
请求
http://localhost:9001/request/alias?name=ryo&pwd=12345699
这里的参数和注解中的别称保持一致。
Post form 表单
对象定义
- User.java
public class User {
private String username;
private String password;
//Getter+Setter+toString()
}
- 请求信息
@ResponseBody
@PostMapping("/object")
public String object(User user) {
return user.toString();
}
Postman 请求模拟
POST 请求,
URL:
http://localhost:9001/request/object
指定 Content-Type=application/x-www-form-urlencoded
作为 MIME type,就像普通的HTML表单一样。
Body 指定类型为 x-www-form-urlencoded
, 内容为:
username: ryo
password: 123456
直接请求,返回内容如下:
User{username='ryo', password='123456'}
post json 信息
场景
有时候接收到的是 json 前端请求
后台
需要通过 @RequestBody
注解声明参数:
@ResponseBody
@PostMapping("/json")
public String json(@RequestBody User user) {
return user.toString();
}
postman 模拟
POST 请求,
URL:
http://localhost:9001/request/json
指定 Content-Type=application/json
传递 json 请求。
Body 指定类型为 raw
, JSON 形式。内容为:
{
"username": "ryo",
"password": "123456"
}
直接请求,返回内容如下:
User{username='ryo', password='123456'}