首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Servlet3.0API中继续或挂起并恢复与客户端的通信?

在Servlet3.0API中继续或挂起并恢复与客户端的通信?
EN

Stack Overflow用户
提问于 2012-02-28 15:06:44
回答 2查看 2.1K关注 0票数 3

我们正在将Swing两层应用程序迁移到web应用程序(tomcat、Spring、extJS,如果有任何不同的话)。

我们在应用程序中找到了这样的代码(简化的Javaesc伪代码)。

代码语言:javascript
复制
class DoSomethingComplicatedAction extends Action{
    public performAction(..){
        // do lots of stuff here
        // decend about 40 steps in the call stack
        answer = JOptionPane.showConfirmDialog()
        if (answer == something){
            // do something convoluted here
        } else {
            // do something even more convoluted here
        }
}

即在一些处理过程中,开始与用户进行一些交互。显然,我不能直接用servlet来完成这个任务。

能够很好地处理这一问题的一件事就是连续性。因此,我检查了是否可以使用这些,并且惊讶地发现,实际上有一些库可以启用这种东西:Java中的延拓

在检查问题中提到的库及其答案时,我遇到了这句话

一旦规范最后确定,将用标准Servlet3.0可挂起的请求替换连续性。Jetty-7的早期版本现已可用,实现了拟议的标准挂起/恢复API。

但我找不到一个例子,说明如何使用Servlet3.0API来完成上述工作

所以问题是:

  1. 是否可以使用Servlet-3.0 API完成上述操作,而无需将上面所勾画的代码完全重构成两个或多个单独的操作?
  2. 如果以上答案是肯定的:怎么做?对于此或类似的用例,是否有一些比较完整的示例可用?
  3. 我应该使用延续还是Servlet?或者,如果不能直接回答这个问题,这个决定取决于什么条件?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-05 08:10:49

jetty提出的延续api是当时克服servlet局限性的主要解决方案。(一个请求,一个线程)

现在,您应该只使用Servlet3.0。

请注意,在您的情况下,您甚至不需要做任何特殊的事情,因为操作是活动的,并且可以按照通常的ajax方式进行。

我要增加几个相关的链接:

  1. Ajax,反向Ajax
  2. 异步与同步servlet
  3. 第8.0号码头与续航
票数 2
EN

Stack Overflow用户

发布于 2012-03-05 08:03:57

我想说,将Swing应用程序移植到web应用程序的一个更合理的方法是使用GWT。这将允许您不仅完成您所要求的操作,而且还将提供一个更快的UI,因为客户端上会发生更多的处理(即不对服务器进行往返)。

此外,您还可以重用大量现有的客户端代码,因为GWT几乎是标准Java (有一些限制)。

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

https://stackoverflow.com/questions/9484385

复制
相关文章

相似问题

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