文章目录
- @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
 祝大家顺顺利利健健康康天天开心,下次见!!!



















