如何在Java EE应用程序中以编程方式避免IE8提供的会话共享?

Idi*_*iot 7 sessionid internet-explorer-8

为了使Internet Explorer 8"更稳定"和"更快",微软改变了浏览器的底层架构并引入了一个名为"Loosely-Coupled IE"(LCIE)的功能,该功能用于跨TAB和新的会话共享实例.

但是当有人试图用同一个应用程序一次做两件不同的事情时,会话共享可能是致命的,例如,有人想要一次预订一张前程旅程票和一张返程票,那时他会预订2门票他没有打算.

可靠的解决方案

  1. 在创建新窗口而不是通过单击图标或Ctrl + N创建时,我们应该使用File - > New Session; 它不会发生.

  2. 您可以在客户端PC上进行注册表更改 - 添加以下内容.

    [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]

"TabProcGrowth"= dword:00000000

将禁用"Loosely Couple IE8"; IE8然后作为IE的早期版本工作.

  1. 使用MSIE运行iexplore.exe -nomerge将禁用"Loosely Couple IE8"; IE8然后作为IE的早期版本工作.

但是我将如何以编程方式执行此操作?


你看,我的问题不是我的申请.如果我登录一个用户,它工作正常,但是当我通过不同用户从IE8浏览器的不同实例登录多个用户时,我以后的会话数据覆盖了前者,这是因为两个IE浏览器都使用相同的会话ID.这是因为IE8的会话共享.对于一个应用程序只维护了一个会话但是我登录了多少用户.实际上我想要保持每个用户的会话.

就像我在一个浏览器中登录Gmail时一样.如果我只是在另一个浏览器上键入Gmail.它正在自动登录.我不希望这个在我的申请中.我应该在我应该执行独立操作的时候由另一个用户登录.

我的应用程序使用Struts,Spring,Hibernate和JBoss应用程序服务器.

现在告诉我应该怎么做?

sri*_*apa 0

尝试在客户端维护会话 ID。例如,在 JSP 级别。然后将其发送回服务器组件并尝试跟踪它。假设接收到的会话当前正在服务器端进行,则通过同步或类似的等待机制保持一段时间。我希望这种会话问题能够得到棘手的解决。