2012-03-02 66 views
4

我有一个EJB 2.1项目(实际上,它必须迁移到EJB 3.1中:-))
目前它只支持一个窗口。这意味着用户应该在窗口上工作。这是因为变量,用作会话变量。 (上次搜索条件,上次使用的ID等)。

我想让在Firefox中打开两个或多个选项卡并行工作。如果用户位于同一个选项卡上,则只应为该选项卡保留变量。只有全局变量才能对所有选项卡有效。
我该如何解决这个问题?
理解多窗口的任何文档都会有所帮助。
或者其他关于multiwindow web项目的想法或经验也是值得欢迎的。Java Web项目中的多窗口

+2

有一件事是肯定的:问题和解决方案都没有任何关系EJB – 2012-03-02 13:03:34

+0

@ Michael-Borgwardt因为我不知道是否有针对ejb的特定解决方案,所以我写了它,以表明项目是一个ejb项目。 – Kayser 2012-03-02 13:07:06

+0

每个选项卡都是应用程序的单独实例。如果您希望它们进行通信,您将需要维护服务器上的状态。 Html5有一个跨应用消息传递机制。也许这会工作? – 2012-03-02 13:14:45

回答

1

在我知道的浏览器或任何EJB中,没有任何内置方式可以解决这个问题。其他Web应用程序框架具有Web Flow的概念,这些Web Flows是一系列连接的操作,可以处理同一浏览器的不同选项卡中的多个流程,因此您可能希望开始在那里查看。

简而言之,他们创建了自己的应用程序控制的“cookie”,而不是浏览器本身。这些“应用程序cookie”然后用于存储与当前操作集相关的信息块,就像会话一样。

这些类型的东西通常会被用户点击一个链接,该链接在通知应用程序(通过页面命中或ajax调用)的“新窗口”(或标签)中打开一个新的“工作会话“正在打开并获得内部会话设置。