我使用JSF,我想避免在浏览器中共享2个标签的同一个会话。我认为一种简单的方法是强制重写URL而不是使用cookie。
有谁能告诉我如何用JSF强制重写网址?
感谢。
斯特凡
答案 0 :(得分:2)
我想避免在浏览器中共享2个标签的同一会话
抱歉,但这没有任何意义。这不是您可以从服务器端控制的东西。所有浏览器在所有打开的选项卡/窗口中使用相同的会话(期望匿名选项卡/窗口,如Chrome Ingognito,通过Ctrl + Shift + N)。这就是所有浏览器的工作方式,完全超出您的控制范围。
如果你遇到问题,那么你应该完全解决它,而不是试图在多个浏览器标签/窗口中禁用会话共享(这是不可能的)。这听起来好像是在会话范围bean中错误地存储请求或视图范围数据。你不应该这样做。您应该将请求范围的数据存储在请求范围的bean中,并在视图范围的bean中查看范围数据。会话范围仅应用于会话范围的数据,例如登录用户及其首选项(如语言设置)。
我认为视图范围实际上是您正在寻找的;它只要你通过回发与相同的视图(阅读:完全相同的浏览器窗口/选项卡)进行交互,它就不会在其他浏览器窗口/标签中共享。