一、@GetMapping @PostMapping @PutMapping等
二、@RequestParam 传递参数
value-指定参数名字 defaultValue:默认值,可选 required:是否必选
/**
* @GetMapping:Spring4.3新特性,只支持get请求
* @PostMapping,@PutMapping同理
* @RequestParam:传递参数:value:指定参数名字 defaultValue:默认值,可选
* required:是否必须
*/
@ResponseBody
@GetMapping("/getmapping")
public String get(@RequestParam(value = "username", defaultValue = "houzheng") String usrename,
@RequestParam(value = "password", required = true) String password) {
return "get springboot" + usrename + "---" + password;
}
三、@PathParam 获取url中的参数
/**
* @PathParam:获取url中的参数 , 可直接注入servlet的api
*/
@ResponseBody
@PostMapping("/postmapping/{id}")
public String post(@PathParam("id") String id, HttpServletRequest req) {
req.getRemoteHost();
return "post springboot";
}
四、@RestController
用于类上,表示方法可以直接用body输出,不用再写@ResponseBody
虽然结果会输出为json,但是如果不设置Content-Type,默认是html。
设置作用:
Content-Type 实体头部用于指示资源的MIME类型 media type 。在响应中,Content-Type标头告诉客户端实际返回的内容的内容类型。浏览器会在某些情况下进行MIME查找,并不一定遵循此标题的值; 为了防止这种行为,可以将标题 X-Content-Type-Options 设置为 nosniff。在请求中 (如POST 或 PUT),客户端告诉服务器实际发送的数据类型。
Spring留了一个设置响应消息Content-Type的接口。在注解@RequestMapping增加一个produces参数项即可。
@RequestMapping(value = { "/api/v1/test" }, method = { RequestMethod.POST }, produces="application/json;charset=UTF-8")
相当于在代码中设置
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json;charset=utf-8");