使用spring boot2X作後端,postman作前端測試前端
1.獲取json字符串java
@RestController public class Demo { @RequestMapping("test") public Result test(@RequestBody JSONObject obj) { return Result.success(200,obj); } }
測試web
2.獲取出傳入的參數值spring
@RestController public class Demo { @RequestMapping("test") public Result test(@RequestParam(value = "name",required = false) String name,@RequestParam(value = "id") Integer id) { MyData my = new MyData(); my.setId(id); my.setName(name); return Result.success(200,my); } }
測試json
3.獲取路徑中的參數值後端
(1)經過PathVariable註解來綁定請求路徑的參數cookie
@RestController public class Demo { @RequestMapping(value = "/test/{id}/{name}") public Result test(@PathVariable(value = "id") Integer id, @PathVariable(value = "name") String name) { MyData my = new MyData(); my.setId(id); my.setName(name); return Result.success(200,my); } }
測試session
(2)指定前端url請求參數名稱與方法名一致app
@RestController public class Demo { @RequestMapping(value = "test") public Result test(Integer id,String name) { MyData my = new MyData(); my.setId(id); my.setName(name); return Result.success(200,my); } }
(3)經過HttpServletRequest來獲取前端頁面參數dom
@RestController public class Demo { @RequestMapping(value = "test") public Result test(HttpServletRequest request) { MyData my = new MyData(); my.setId(Integer.valueOf(request.getParameter("id"))); my.setName(request.getParameter("name")); return Result.success(200,my); } }
(4)經過RequestParam註解來獲取
@RestController public class Demo { @RequestMapping(value = "test") public Result test(@RequestParam(defaultValue = "0") Integer id,@RequestParam(defaultValue = "0")String name) { MyData my = new MyData(); my.setId(id); my.setName(name); return Result.success(200,my); } }
4.獲取請求的報文頭
@RestController public class Demo { @RequestMapping(value = "test") public Result test(@RequestHeader Map<String, String> map) { return Result.success(200,map); } }
5.請求中的cookie
@RestController public class Demo { @RequestMapping(value = "test") public Result test(@CookieValue(value = "JSESSIONID", required = true) String jsessionId,@CookieValue(value = "name", required = true) String name) { return Result.success(200,"JSESSIONID="+jsessionId+",name="+name); } }
5.獲取矩陣變量綁定的參數
矩陣變量
矩陣變量能夠出如今任何路徑片斷中,每個矩陣變量都用分號(;)隔開,多個值能夠用逗號隔開
Spring4.0已經全面支持Matrix Variable,該註解似的開發人員可以將請求中的矩陣變量綁定處處理器的方法參數中
spring boot 默認是沒法使用矩陣變量綁定參數的。須要覆蓋WebMvcConfigurer中的configurePathMatch方法
package com.example.demo.core; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.*; import org.springframework.web.util.UrlPathHelper; @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void configurePathMatch(PathMatchConfigurer configurer) { UrlPathHelper urlPathHelper=new UrlPathHelper(); urlPathHelper.setRemoveSemicolonContent(false); configurer.setUrlPathHelper(urlPathHelper); } }
使用矩陣變量
@RestController public class Demo { @RequestMapping(value="test/{param}") public Object test(@MatrixVariable(pathVar="param",value="color")String[] tt){ for (String s : tt) { System.out.println(s); } return Result.success(200,tt); } }
調用時也能夠寫成http://127.0.0.1:8080/test/color=red;color=green;color=blue,結果是同樣的
@RestController public class Demo { @RequestMapping(value="test/{x1}/p/{x2}") public Object test2(@MatrixVariable(pathVar = "x1") Map<String, String[]> x1, @MatrixVariable(pathVar = "x2") Map<String, String[]> x2){ System.out.println(x1); System.out.println(x2); return x1+"-----"+x2; } }
附:
Result.java
package com.example.demo.core; import com.alibaba.fastjson.JSON; /** * Created by Beibei on 19/02/22 * API響應結果 */ public class Result<T> { private int code; private String message; private T data; public Result setCode(Integer code) { this.code = code; return this; } public int getCode() { return code; } public String getMessage() { return message; } public Result setMessage(String message) { this.message = message; return this; } public T getData() { return data; } public Result setData(T data) { this.data = data; return this; } @Override public String toString() { return JSON.toJSONString(this); } public static <T> Result<T> fail(Integer code,T data) { Result<T> ret = new Result<T>(); ret.setCode(code); ret.setData(data); return ret; } public static <T> Result<T> failMessage(Integer code,String msg) { Result<T> ret = new Result<T>(); ret.setCode(code); ret.setMessage(msg); return ret; } public static <T> Result<T> successMessage(Integer code,String msg) { Result<T> ret = new Result<T>(); ret.setCode(code); ret.setMessage(msg); return ret; } public static <T> Result<T> success(Integer code,T data) { Result<T> ret = new Result<T>(); ret.setCode(code); ret.setData(data); return ret; } }
MyData.java
package com.example.demo.domain; public class MyData { private int id; private String name; private String other; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOther() { return other; } public void setOther(String other) { this.other = other; } }