文章目录
- 详解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;
}
}