實現異步請求步驟如下:
**1. 前端發起異步請求**
```html
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script>
$.ajax({
url: '/web/async?method=message', //請求地址
method: 'post', //請求方式
dataType: 'json', //響應數據類型為json
data: {'id': 1, 'username': 'zhangsan', 'password': '123456'}, //發送到后端的數據
beforeSend: xhr => {
//在發送請求之前執行的方法
console.info("beforeSend")
},
success: (result, status, xhr) => {
//發送請求成功并獲取響應后被執行的方法
console.info('success -> result', result)
//{id: 1, password: '123456', username: 'zhangsan'}
},
error: (result, status, xhr) => {
//發送請求之后后端發送異常時被執行的方法
console.info('error -> result', result)
}
})
</script>
```
**2. Servlet代碼**
```java
@WebServlet("/async")
public class AsyncServlet extends BaseServlet {
/**
* 異步請求必須返回void
*/
public void message(HttpServletRequest request, HttpServletResponse response) throws IOException {
Integer id = Integer.parseInt(request.getParameter("id"));
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = User.builder().id(id).username(username).password(password).build();
//將數據轉換為json字符串再響應給前端
response.getWriter().print(JSON.toJSONString(user));
}
}
```