spring boot前后端交互之数据格式转换(表单,URL,JSON)

在前后端分离开发的项目种,前端获取数据的方式基本都是通过Ajax。请求方法也有所不同,常见的有POST,GET,PUT,DELETE等。甚至连请求的数据类型都不一样,x-www-form-urlencodeed,form-data,json等。

那么在前后端交互过程中,具体的数据该如何接收呢?

spring boot接收JSON数据

{
 "id": 0,
  "address_id": 6,
  "detail_address": "我是11251111111",
  "user_id": 611111,
  "create_time": null,
  "update_time": null,
  "name": "测试人11111",
  "phone": "13378954789111"
}
@RequestMapping(value = "/add",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
 public ResponseData addUsers(@RequestBody UserInfo userInfo){
     if (StringUtils.isNotEmpty(userInfo.getAccount())){
         if (userInfoService.ifUserExist(userInfo.getAccount())){
             return ResponseData.error(500,"账户已存在,请重新设置!");
         }
     }
     System.out.println(userInfo.toString());
}

在这里插入图片描述
接收json数据的两个关键点:

  • json类型声明
produces = "application/json;charset=UTF-8"

@RequestMapping接口处声明传输类型未json。

  • @RequestBody声明Java Bean

json数据必须用对象接收,且必须用@RequestBody声明,且json的key与bean的成员变量名要对应。

spring boot 接收x-www-form-urlencodeed表单数据

在这里插入图片描述
表单数据有两种接收类型:

  • @RequestParam接收
    @RequestMapping(value = "/fuzzy",method = RequestMethod.POST)
    public ResponseData fuzzyQuery(@RequestParam("carType") Integer carTpe, @RequestParam("carStatus") Integer carStatus, @RequestParam("name") String name, @RequestParam("carNo") String carNo){
        //String name1 = "%"+name+"%";
        List<CarInfo> carInfos = carInfoService.fuzzySelect(carTpe, carStatus, name, carNo);
        return ResponseData.success(carInfos);
    }

使用@RequestParam的传入参数名必须与接收的参数名一致。如表单传入name = 'mike',则后端接受时:@RequestParam("name") String name

  • 对象接收
    @RequestMapping(value = "/pageList",method = RequestMethod.POST)
    public ResponseData carPageList(CarInfoSelect carInfoSelect){
        IPage<CarInfoResult1> page = carInfoService.carPageList(carInfoSelect);
        //LayuiPageInfo pageInfo = LayuiPageFactory.createPageInfo(page);
        return ResponseData.success(page);
    }

表单传入的参数很多,将这些参数封装为一个java对象来接收,不需要注解,注意区分和josn数据的区别。

spring boot 接收URL数据

  • /tmp?name=mike类型

这种类型的接收方式千万别写错了,下图这样就是错的:

在这里插入图片描述
这样输入是就会报错404

在这里插入图片描述

该类型的传参,url通过/tmp?name=mike这样传,接收知道对应的url,不用写?和其后面的字段

@GetMapping("/tmp")
public String getName(String name){
    System.out.println(name);
    return name;
}

在这里插入图片描述

  • /tmp/{type}/{page}的参数接收
@GetMapping("/item/{type}/{page}")
public String getParvalue(@PathVariable("type") String type, @PathVariable("page")Integer page){
   return "类型:"+type+"页数"+page;
}

在这里插入图片描述

总结:

  1. 不需要使用注解的就两种:
  • 表单用对象接收
  • /tmp?name=mike类型的参数接收
  1. 需要使用注解的有:JSON,表单的单个接收,/tmp/{type}/{page}的参数接收
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Java前后端交互通常使用HTTP协议进行通信。通常情况下,前端通过发送HTTP请求(如GET、POST等)向后端发送请求,后端接收请求并处理请求后,将响应内容返回给前端。 具体地说,Java后端通常会使用Servlet或SpringMVC等框架来处理HTTP请求。当前端发送请求时,Java后端会根据请求的URL映射到相应的Servlet或Controller进行处理,处理完成后将响应内容(如JSON、HTML等)返回给前端。 在Java后端处理HTTP请求时,通常会使用一些常见的框架和工具,如Spring Boot、MyBatis、Hibernate等。这些框架和工具可以帮助开发者快速地开发出高效、可靠的Web应用程序。 ### 回答2: 在Java前后端交互过程中,通常使用HTTP协议作为数据传输的基础。以下是Java前后端交互的主要步骤: 1. 客户端发起请求:前端通过发送HTTP请求向后端请求数据或提交表单。可以使用Ajax技术异步发送请求,也可以通过表单的方式同步发送请求。 2. 服务端接收请求:后端接收到请求后,根据请求的URL和参数进行处理,并根据业务逻辑查询数据库或处理其他操作。 3. 数据处理与封装:后端根据业务逻辑处理请求的数据,可以进行数据查询、计算或其他操作,并将处理后的数据封装为特定的数据结构,如JSON、XML等格式。 4. 数据传输:后端通过HTTP协议将处理后的数据作为响应的内容返回给前端。可以使用Servlet、Spring MVC等框架来处理HTTP协议,将数据封装为HTTP响应。 5. 前端处理响应:前端接收到后端返回的数据后,根据需要进行解析和处理,可以使用JavaScript等前端语言解析JSON、XML等格式的数据,并将数据展示到页面中。 6. 前端更新页面:根据后端返回的数据,前端可以更新页面内容、刷新页面、展示提示信息等操作,以提供更好的用户交互体验。 整个过程中,Java前端和后端通过HTTP协议进行数据的传输。前端发送请求到后端,后端处理请求并返回响应数据给前端,前端接收到响应数据后进行解析和处理。通过这种交互方式,前后端可以实现数据的传递和页面的更新,从而实现丰富的网页功能。 ### 回答3: Java前后端交互是指前端(通常是浏览器)和后端(Java服务器)之间通过网络传递数据和请求的过程。 Java前端与后端的交互过程可以归纳为以下几个步骤: 1. 前端向后端发送请求:前端通过HTTP协议向后端发送请求,常见的请求方式有GET和POST。请求可以包含参数,比如表单数据URL中的查询参数等。 2. 后端接收请求:后端服务器接收到前端发送的请求,根据请求的URL和方法来确定需要执行的业务逻辑。 3. 后端处理请求:后端根据具体的业务需求处理请求,可能会涉及到数据库操作、计算逻辑、文件读写等各种操作。 4. 后端生成响应:后端处理完请求后,会生成响应数据。响应数据可以是HTML、JSON、XML等格式,其中一种常见的方式是使用Java中的Servlet技术生成响应。 5. 后端向前端发送响应:后端将生成的响应数据通过HTTP协议发送给前端,前端浏览器会根据响应的格式进行解析,并进行相应的展示和处理。 6. 前端展示响应:前端浏览器接收到后端发送的响应数据后,会将其展示给用户。如果响应数据是动态生成的,前端可能还会进行进一步的处理和渲染。 以上就是Java前后端交互的基本流程。可以通过HTTP协议实现前后端之间的数据传输和通信,Java后端通过接收和处理前端请求,生成相应的响应数据,并将其发送给前端,完成前后端的交互过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值