文章目录
- @RequestMapping
- @GetMapping
- @PostMapping
- @ResponseBody
- 传参
- @RequestParam
- @PathVariable
- @RequestBody
- @RequestPart
- @CookieValue
- @SessionAttribute
- @RequestHeader
- 总结
@RequestMapping
支持 GET/POST 类型的请求。()内写请求的访问地址。
即可以修饰类也可以修饰方法。
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/hello")
public String test(){
return "hello Spring MVC";
}
}
@GetMapping
只支持Get类型的请求
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/get")
public String getTest(){
return "get请求";
}
}
@PostMapping
只支持Post类型的请求。
@RestController
@RequestMapping("/test")
public class TestController {
@PostMapping("/post")
public String postTest(String msg){
return msg;
}
}
@ResponseBody
返回非静态 HTML 页面数据。
以上的返回数据其实都添加了注解@ResponseBody。只不过和@Controller合并写成了@RestController。
如果不加这个注解,默认返回的是静态HTML页面。
传参
传一个参数:
传多个参数:
传普通对象:
@RequestParam
接收前端参数。有两个属性:value 和 required。
value:前端Querry String中参数名是什么,这里的value就是什么。
required:参数是否必传。true表示value必须传,false表示非必传。
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/rename") //参数重命名
public String getN(@RequestParam(value = "n",required = false) String name) {
return name;
}
}
不穿参数n时:
也不会报错。但是如果required设置成了true,不传n就会报错。
@PathVariable
从url中获取参数。
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/detail/{aid}") //5.从url里面获取参数
public int detail(@PathVariable("aid")int aid){
return aid;
}
}
注意点:
1.请求路径中要获取的参数字段要加上{}。
2.Post请求。
@RequestBody
接收 JSON 对象参数。
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/stu_json") //获取一个json对象
public Student getStu(@RequestBody Student student){
return student;
}
}
@RequestPart
获取上传的文件
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/upload") //6.获取文件
public String upload(@RequestPart("myfile")MultipartFile file) throws IOException {
// String path="D:\\image\\image.png";每次名字一样会被覆盖
//1.生成唯一id(UUID)
String name= UUID.randomUUID().toString().replace("-","");
//2.获取原来文件的后缀名 .png
name+=file.getOriginalFilename().
substring(file.getOriginalFilename().lastIndexOf('.'));
//3.文件保存路径
String path="D:\\image\\"+name;
//4.保存文件
file.transferTo(new File(path));
return path;
}
}
@CookieValue
获取cookie。
@SessionAttribute
获取session。
@RequestHeader
获取请求头中的报头数据。
获取请求头里的User-Agent:
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/header")
public String getHeader(@RequestHeader("User-Agent") String userAgent){
return userAgent;
}
}
总结
以上就是SpringMVC的部分基础注解,更多注解请看官方网站:https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller/ann-requestmapping.html
祝大家顺顺利利健健康康天天开心,下次见!!!