文章目录

  • 详解Spring框架的异步请求
  • 1、导入响应的jar包(gson)
  • 2、前端请求
  • 3、后端逻辑处理并返回结果


详解Spring框架的异步请求

在开发过程中有异步请求和同步请求之分。

  • 同步请求(又称同步交互):指发送一个请求,需要等待返回,然后才能够发送下一个请求;是流水线式的请求;在请求响应时会刷新整个页面。
  • 异步请求(又称异步交互):指发送一个请求,不需要等待返回,随时可以再发送下一个请求;是非流水线式的请求;在请求响应时只会刷新页面的局部。

区别:一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步请求方式;尤其是在前后端分离开发过程中,异步请求尤为重要。

1、导入响应的jar包(gson)

该项目是在集成了Maven(管理jar包以及jar包之间的依赖)的基础上开发的,在导入jar包时注意版本。

<!-- gson的jar包坐标 -->
 <dependency>
     <groupId>com.google.code.gson</groupId>
     <artifactId>gson</artifactId>
     <version>2.8.5</version>
 </dependency>

相信很多同学都知道json,但是导入的jar包为什么是gson尼;其实json是一种轻量级的数据交换样式,同xml一样是一种传输样式,便于数据传输、存储和交换。
gson是一种组件库,可以把java对象数据转换成json数据格式。gson是google提供的用来在Java对象和json数据之间进行映射的Java类库。可以将一个json字符串转换成一个Java对象,或者返过来。
Json数据格式和Java对象之间的转换

2、前端请求

$.post("login",data,function(res){
   if(res == 0){
         /* 返回值判断处理,为0则表示,成功,进行页面的跳转或数据渲染之类 */
    }else if(res == 1){
     	/* 返回值判断处理,为1则表示数据不存在,弹框提示,不进行页面跳转 */
    }else{
     	/* 进行其他处理,避免后端报错,影响客户体验度 */
    }
});

3、后端逻辑处理并返回结果

@ResponseBody:异步最重要的注解。其作用是将Controller的方法返回的对象,通过适当的转换器,转换为指定的格式(json数据格式或xml)之后,写入到response对象的body区(响应体中)。
@RequestMapping:是web应用程序中最常被用到的注解之一。作用就是映射URL路径,将http的请求地址映射到控制器(controller)类的处理方法上。

@ResponseBody
 @RequestMapping(path = "/login")
 public int login(data){
     try {
     	/* 对请求数据进行封装和必要的处理 */
         if(逻辑判断){
             /* 数据存在且正确,返回状态码0 */
             return 0;
         }else{
          	/* 如果不存在需要的数据,返回状态码1 */
             return 1;
         }
     }catch (Exception e){
     	/* 出现异常则控制台输出(开发过程中可以使用,项目上线后使用日志打印),返回状态码2 */
         e.printStackTrace();
         return 2;
     }
 }