SpringMVC中的相关注解

文章目录

    • @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";
    }
}

SpringMVC中的相关注解_第1张图片

@GetMapping

只支持Get类型的请求

@RestController
@RequestMapping("/test")
public class TestController {
    @GetMapping("/get")
    public String getTest(){
        return "get请求";
    }
}

SpringMVC中的相关注解_第2张图片

@PostMapping

只支持Post类型的请求。

@RestController
@RequestMapping("/test")
public class TestController {
    @PostMapping("/post")
    public String postTest(String msg){
        return msg;
    }
}

SpringMVC中的相关注解_第3张图片

@ResponseBody

返回非静态 HTML 页面数据。

以上的返回数据其实都添加了注解@ResponseBody。只不过和@Controller合并写成了@RestController。
如果不加这个注解,默认返回的是静态HTML页面。

传参

传一个参数:
SpringMVC中的相关注解_第4张图片

SpringMVC中的相关注解_第5张图片

传多个参数:
在这里插入图片描述
SpringMVC中的相关注解_第6张图片

传普通对象:
SpringMVC中的相关注解_第7张图片

在这里插入图片描述
SpringMVC中的相关注解_第8张图片

@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;
    }
}

SpringMVC中的相关注解_第9张图片
不穿参数n时:
SpringMVC中的相关注解_第10张图片
也不会报错。但是如果required设置成了true,不传n就会报错。
SpringMVC中的相关注解_第11张图片

@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请求。
SpringMVC中的相关注解_第12张图片

@RequestBody

接收 JSON 对象参数。

@RestController
@RequestMapping("/test")
public class TestController {
    @RequestMapping("/stu_json") //获取一个json对象
    public Student getStu(@RequestBody Student student){
        return student;
    }
}

SpringMVC中的相关注解_第13张图片

@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;

    }
}

SpringMVC中的相关注解_第14张图片

@CookieValue

获取cookie。

在这里插入图片描述

SpringMVC中的相关注解_第15张图片

@SessionAttribute

获取session。

SpringMVC中的相关注解_第16张图片

SpringMVC中的相关注解_第17张图片
SpringMVC中的相关注解_第18张图片

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

你可能感兴趣的:(mvc,spring,java)