我们正在将Swing两层应用程序迁移到web应用程序(tomcat、Spring、extJS,如果有任何不同的话)。
我们在应用程序中找到了这样的代码(简化的Javaesc伪代码)。
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来完成上述工作
所以问题是:
发布于 2012-03-05 08:10:49
jetty提出的延续api是当时克服servlet局限性的主要解决方案。(一个请求,一个线程)
现在,您应该只使用Servlet3.0。
请注意,在您的情况下,您甚至不需要做任何特殊的事情,因为操作是活动的,并且可以按照通常的ajax方式进行。
我要增加几个相关的链接:
发布于 2012-03-05 08:03:57
我想说,将Swing应用程序移植到web应用程序的一个更合理的方法是使用GWT。这将允许您不仅完成您所要求的操作,而且还将提供一个更快的UI,因为客户端上会发生更多的处理(即不对服务器进行往返)。
此外,您还可以重用大量现有的客户端代码,因为GWT几乎是标准Java (有一些限制)。
https://stackoverflow.com/questions/9484385
复制相似问题