使用异步请求的简单Java Servlet示例

20 篇文章 1 订阅
14 篇文章 0 订阅

Java 代码
 

    @GetMapping("/asyncDemo")
    @ResponseBody
    public void asyncDemo(Model model, HttpServletRequest request) {
        AsyncContext asyncContext = request.startAsync();
        // 创建一个异步任务来处理请求  
        new Thread(() -> {
            try {
                // 模拟耗时操作  
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // 异步任务完成后,设置响应内容  
            try {
                System.out.println("异步处理完成!");
                ServletResponse response = asyncContext.getResponse();
                response.setContentType("text/html; charset=UTF-8");

                response.getWriter().write("异步处理完成!");
                asyncContext.complete(); // 完成异步处理  
            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
        System.out.println("做点别的事情。。。。");
    }

前端代码

<!DOCTYPE html>  
<html>  
<head>  
    <title>异步请求 示例</title>  
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>  
</head>  
<body>  
    <button id="myButton">点击我</button>  
    <div id="response"></div>  
  
    <script>  
        $(document).ready(function() {  
            $('#myButton').click(function() {  
                $.ajax({  
                    url: 'http://127.0.0.1:8085/asyncDemo', // 替换为你的API地址  
                    type: 'GET', // 请求类型  
                    dataType: 'text', // 预期服务器返回的数据类型  
                    success: function(data, status, xhr) {  
                        // 在这里编写处理函数,例如将返回的数据显示在页面上  
                        $('#response').text(data);  
                    },  
                    error: function(xhr, status, error) {  
                        // 在这里编写错误处理函数,例如显示错误消息  
                        $('#response').text('Error: ' + error);  
                    }  
                });  
            });  
        });  
    </script>  
</body>  
</html>

 运行结果:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

D哈迪斯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值