@RequestBody与@ResponseBody的使用

@RequestBody用于将JSON数据转化为Java对象,而@ResponseBody则将方法返回值以JSON格式写入响应体。在使用前需引入相关jar包,并在Spring配置文件中配置注解适配器。前端以POST请求并设置content-type: application/json,后端控制器接收到请求后进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用

@RequestBody把前台页面传递过来的json数据转换为JavaBean
@ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。

注:
@ResponseBody

使用步骤

一、导入依赖jar包

这两个注解不能直接使用,它们依赖与json的jar包

在pom.xml文件里导依赖

<dependencies>
	<!--jackson导包开始-->
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-core</artifactId>
		    <version>2.9.4</version>
		</dependency>
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-databind</artifactId>
		    <version>2.9.4</version>
		</dependency>
	<!--jackson导包结束-->
</dependencies>

注:上面的jar包版本需要注意一下,低版本的jar可能不支持此类操作,如果出现不支持情况的话,就把jar包版本提高,上面的jar包版本是支持的。

二、配置注解处理适配器

在springmvc.xml中配置

<!--处理器映射器,处理器适配器-->
	<mvc:annotation-driven/>
三、前端发送请求

register.jsp

 $.ajax({
   url: "/user/addUser",
     type:"post",
     //需要配置请求头
     contentType: "application/json;charset=utf-8",
     //把js数据转化为json数据
     data:JSON.stringify({"username": username, "password": password}),
     success: function (res) {
         console.log("res"+res);
         if (res>0){
             alert("1注册成功!");
         } else {
             alert("0注册失败!")
         }
     }
 })
后端处理请求

UserController.java

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    UserService userService;
    @RequestMapping("/addUser")
    @ResponseBody
    public int addUser(@RequestBody User user){
        System.out.println("username"+user.getUsername());
        return userService.addUser(user);
    }
}
补充
关于@RequestBody可以处理的请求头格式问题:
  • ReuqestBody 主要是处理json串格式的请求参数,要求使用方指定- - header content-type:application/json
  • RequestBody 通常要求调用方使用post请求
  • RequsetBody参数,不会放在HttpServletRequest的Map中,因此没法通过javax.servlet.ServletRequest#getParameter获取

有兴趣的同学可看Spring之RequestBody的使用姿势小结
了解详细信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值