我使用JSF,我想避免在浏览器中共享两个选项卡的同一会话。我认为一个简单的方法是强制重写url,而不是使用cookie。
有人能告诉我如何用JSF强制重写url吗?
谢谢。
Stéphane
我想避免在浏览器中共享2个选项卡的同一会话
抱歉,但这毫无意义。这不是你可以从服务器端控制的。所有浏览器在所有打开的选项卡/窗口中都使用相同的会话(除了通过Ctrl+Shift+N的Chrome Ingognito等匿名选项卡/窗口)。这就是所有浏览器的工作方式,完全超出了您的控制范围。
如果你有问题,那么你绝对应该解决它,而不是试图在多个浏览器选项卡/窗口中禁用会话共享(这根本不可能)。这听起来很像是在会话范围的bean中错误地存储了请求或视图范围的数据。你不应该那样做。您应该将请求范围的数据存储在请求范围的bean中,将视图范围的数据保存在视图范围的bean。会话范围应仅用于会话范围的数据,如登录用户及其首选项(如语言设置)。
我认为视图范围实际上就是你想要的;只要你通过回发与同一个视图(读作:同一个浏览器窗口/选项卡)交互,它就会一直存在,并且它不会在其他浏览器窗口/标签中共享。
另请参阅:
- 如何选择正确的bean作用域