我正在使用我的JSF应用程序进行一些测试,当我在不同选项卡上的同一个Web浏览器中尝试它时,在所有选项卡中,最后一个会话都存在。
我该如何防止这种情况?
答案 0 :(得分:5)
如果没有黑客/更改浏览器,这是不可能的。但这真的不重要。如果这会导致JSF应用程序中出现不直观的行为(例如,在另一个选项卡中重新显示了一个选项卡的数据),那么您显然将视图范围数据存储在会话范围的bean中。您应该将视图范围的数据存储在视图范围的bean中。
或者,如果它纯粹用于测试目的(即您只是想测试物理上独立的用户会话),那么您应该使用物理上独立的浏览器。例如。一个Firefox和一个Chrome。
或者,如果您绝对需要“每个选项卡/窗口一个用户会话”,则将登录用户存储在视图范围的bean而不是会话范围的bean中,并专门使用ajax回发来浏览页面(SPA - 单页应用程序)。