我有一个以 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/

10-10 10:09