假设使用 jQuery 中的 ajax
1. Json 对象
前端代码示例如下:
$.ajax({
url : 'http://localhost:8888/demo',
type: 'post',
data: {
'userName':'15488779956'
}
success: function(data) {
// TODO
}
})
后台代码示例如下:
@RestController
public class Demo {
/**
* 方法 1 使用 HttpServletRequest 接收
* */
@RequestMapping("/demo")
public String getParam(HttpServletRequest request) {
return request.getParameter("userName");
}
/**
* 方法 2 使用 RequestParam 接收
* */
@RequestMapping("/demo2")
public String getParam2(@RequestParam(value = "userName") String userName) {
return userName;
}
/**
* 方法 3 与 方法 2 相同,只是变量名相同可以简化书写
* */
@RequestMapping("/demo3")
public String getParam3(String userName) {
return userName;
}
}
2. Json 字符串
前端代码示例如下:
$.ajax({
url : 'http://localhost:8888/demo',
type: 'post',
contentType:'application/json;charset=UTF-8',//关键
data: '{"userName":"15488779956"}',
success: function(data) {
// TODO
}
})
后台示例代码如下:
@RestController
public class Demo {
/**
* 方法 1 使用 字符串分割获取值
* */
@RequestMapping("/demo")
public Map<String, String> getParam(HttpServletRequest request) {
// 获取所有参数
Enumeration<String> params = request.getParameterNames();
// 测试只有一条数据
String param = params.nextElement();
// 字符串分割
String paramKey = param.split(":")[0].replace("\"", "").replace("{", "");
String paramValue = param.split(":")[1].replace("\"", "").replace("}", "");
Map<String, String> result = new HashMap<>();
result.put(paramKey, paramValue);
return result;
}
/**
* 方法 2 使用 Gson 与对应对象获取值
* */
@RequestMapping("/demo2")
public Object getParam2(HttpServletRequest request) {
// 获取所有参数
Enumeration<String> params = request.getParameterNames();
// 测试只有一条数据
String param = params.nextElement();
Gson gson = new Gson();
return gson.fromJson(param, Req.class);
}
/**
* 方法 3 使用 Requestbody 实体进行接收
* */
@RequestMapping(value = "/demo3")
public String getParam3(@RequestBody Req s) {
System.out.println(s.toString());
return s.getUserName();
}
}
------------------------------------------------
/**
* 自定义的类,用于参数接收
* */
public class Req {
// 这个参数需要和 接收的数据 key 相同
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "Req{" +
"userName='" + userName + '\'' +
'}';
}
}