Controller控制层@RequestMapping,@ResponseBody,@RequestBody的使用

本文介绍了Spring MVC中Controller控制层的注解使用,包括@RequestMapping用于定义请求映射,@ResponseBody将方法返回值写入HTTP响应体,常用于返回JSON数据,以及@RequestBody用于接收请求体中的JSON数据并封装成对象。

Controller控制层@RequestMapping,@ResponseBody,@RequestBody的使用

1.@RequestMapping("/url")

这里的url是请求路径的一部分,一般作用在Controller的方法上,作为请求映射的地址.

@Controller
@RequestMapping(value = "/test") //类级别映射,可以没有,一般用于减少书写量
public class test {
    //方法级别映射,必须有,那么这个方法的访问地址就是/test/aaa
    @RequestMapping(value = "/aaa")   //value可以省略
    public String getMyName() {
        return "test";
    }
}

2.@ResponseBody

@ResponseBody作用在方法上,
方法的返回结果不会被解析为跳转路径,而是直接写入HTTP response body响应体
@Controller,@ResponseBody可以合二为一,在类上直接写@RestController

@ResponseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定格式之后,写入到response对象的body区,通常用来返回json数据
但是需要注意的是,在使用此注解之后不会再走视图解析器,直接将数据写入HTTP response body响应体

 	@RestController
    @RequestMapping("/test")
    public class test {
        @RequestMapping( "/login")   
       // @ResponseBody
        public User login(User user) {
            return user;
        }
    }

3.@RequestBody

在这里插入图片描述
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);

以上例子中,product帮你封装对象的时候,只会按照key value的这种字符串的形式去封装,只能按照最原始的键值对的方式getParameter封装
不认识json格式
加注解@RequestBody 告诉你不要getParameter获取封装参数了,直接从请求体中拿参数封装就可以

### `@RequestMapping`及其衍生注解 - **`@RequestMapping`**:是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法。需注意,`@RequestMapping`用在类上可以没有,但用在方法上必须有。示例如下: ```java @Controller @RequestMapping(value = "/controllers") public class StatisticUserCtrl { @RequestMapping(value = "/method") public String helloworld() { return "helloWorld"; } } ``` - **衍生注解**: - **`@GetMapping`**:是`@RequestMapping(method = RequestMethod.GET)`的缩写,用于处理HTTP GET请求。 - **`@PostMapping`**:是`@RequestMapping(method = RequestMethod.POST)`的缩写,用于处理HTTP POST请求。 - **`@PutMapping`**:是`@RequestMapping(method = RequestMethod.PUT)`的缩写,用于处理HTTP PUT请求。 - **`@DeleteMapping`**:是`@RequestMapping(method = RequestMethod.DELETE)`的缩写,用于处理HTTP DELETE请求。 ### `@RequestBody` 该注解用于将HTTP请求体中的数据绑定到方法的参数上,通常用于处理JSON、XML等格式的数据。示例如下: ```java @PostMapping("/users") public User createUser(@RequestBody User user) { // 处理用户创建逻辑 return user; } ``` ### `@RequestParam` 用于从请求的URL参数中获取值,并将其绑定到方法的参数上。示例如下: ```java @GetMapping("/users") public List<User> getUsers(@RequestParam("page") int page, @RequestParam("size") int size) { // 根据分页参数查询用户列表 return userService.getUsers(page, size); } ``` ### `@PathVariable` 用于从请求的URL路径中获取变量值,并将其绑定到方法的参数上。示例如下: ```java @GetMapping("/users/{id}") public User getUserById(@PathVariable("id") int id) { // 根据用户ID查询用户信息 return userService.getUserById(id); } ``` ### `@ResponseBody` 用于将方法的返回值直接作为HTTP响应体返回给客户端,通常用于返回JSON、XML等数据。示例如下: ```java @GetMapping("/users/{id}") @ResponseBody public User getUserById(@PathVariable("id") int id) { // 根据用户ID查询用户信息 return userService.getUserById(id); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值