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'}
