我有一个以 Vaadin
开头的 user login
应用程序,但问题在于 Vaadin
是 session 处理,因为我可以使用相同的 login
从 2 个不同的浏览器打开两个 session ,这不应该是不可能的。但是除了这个 topic 之外,我没有找到任何与此相关的文档,但它无法正常工作,因为数据没有正确保存在 hashmap
中。有人遇到过同样的问题吗?
最佳答案
Vaadin 7 默认工作,因此每次打开新浏览器选项卡(或刷新选项卡)时,它都会创建一个新的 UI 实例。您应该将有关当前用户的信息存储到 VaadinSession
或标准 HttpSession
并检查 UI.init()
如果 session 包含用户信息。
要将信息存储到 VaadinSession
中,可以说:
VaadinSession.getCurrent().setAttribute("currentUser", currentUser)
在 Vaadin 中可以按如下方式访问 HttpSession:
VaadinSession.getCurrent().getSession()
请注意,
VaadinSession
存储在 HttpSession
中,如果从同一个 war 文件部署多个 Vaadin servlet,并且用户同时使用它们,那么 HttpSession
可以包含多个 VaadinSession
。关于java - Vaadin 中的 session 处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28263570/