首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何集成AJAX和Java EE servlet 3异步响应

如何集成AJAX和Java EE servlet 3异步响应
EN

Stack Overflow用户
提问于 2013-04-01 23:17:25
回答 1查看 676关注 0票数 0

我正在考虑如何让AJAX使用servlet 3异步响应。在请求-响应同步处理模型中,当响应返回时,XmlHttpRequest的回调可以获得响应文本;但是如果响应在另一个线程中处理,并返回一些消息,那么当请求结束时,XHR将获得什么?它还能得到响应体吗?我尝试了一个简单的代码来测试它,它似乎没有得到响应;

但是我想知道有什么方法可以让AJAX得到正确的响应吗?

EN

回答 1

Stack Overflow用户

发布于 2013-04-04 10:49:09

我担心我之前犯了一个错误,我忘记在异步处理完成后调用asycContext.complete()。在调用complete()之后,ajax将获得响应。但是,如果处理时间超过timeout设置,就会出现异常,说明asynccontext的状态非法,客户端什么也得不到:

代码语言:javascript
复制
    final AsyncContext ac = request.startAsync();


   ac.setTimeout(1000);


    Executors.newSingleThreadExecutor().execute(new Runnable(){

        @Override
        public void run() {
            PrintWriter pw;
            try {
                Thread.sleep(2000);
                pw = ac.getResponse().getWriter();
                pw.write("Hello, World!");
                ac.complete();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    });

所以我猜这里的关键是: 1.处理完成后调用complete;2.设置适当的超时;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15746104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档