【问题标题】:Multi user web application多用户 Web 应用程序
【发布时间】:2012-10-26 15:45:31
【问题描述】:

我知道这个问题被问了很多,但我没有找到任何可以帮助我的东西。

我正在使用 Java、JSF、EJB、JPA、GlassFish、MySQL。

我使用这些技术开发了带有身份验证的网站,但只能从一个位置(一次一个会话),如果另一个用户从另一个位置登录,他可以看到第一个用户会话的状态。

现在我需要开发一个具有通用主页和一些通用功能的多用户 Web 应用程序,但其余的需要依赖于用户对 Web 应用程序和数据库的多线程访问。

我需要:

  • 限制用户只能从一个位置、一台计算机开始会话
  • 让他们让他们在网站上注册一段有限的时间(可以说,个人资料应该有效 1 年)
  • 在 1 小时后给他们超时 等等……

请帮助我了解我必须做什么! 我不知道t know how and where to start, I read a lot of articles about this, but it was just bits and pieces and I dont 对此有完整的了解。

感谢您抽出宝贵的时间,祝您编码愉快,并继续您在这里所做的出色工作!

【问题讨论】:

    标签: mysql jsf jpa ejb multi-user


    【解决方案1】:

    如果另一个用户从另一个位置登录,他可以看到第一个用户会话的状态。

    这是不对的。这个应用程序从一开始就设计得很糟糕。当您将请求和/或会话范围的数据存储在 static 变量或应用程序范围内时,可能会发生这种情况。这个不对。请求范围的数据应存储在请求范围 bean 中的非static 变量中。会话范围的数据应存储在会话范围 bean 中的非static 变量中。

    换句话说,停止使用static 变量,直到您真正理解这意味着什么,并且不要将数据存储在太宽的范围内。

    另见:

    【讨论】:

    • 感谢您的快速答复。所以我应该玩bean的范围吗?我知道我必须声明正确的范围,但这足够了吗?并具有数据库访问权限? JPA 知道如何处理多重访问?
    • 不完全是在播放。只需为数据使用正确的范围。在应用程序范围内存储请求范围的数据是没有意义的。另请参阅“另请参阅”链接。至于JPA/EJB,只要不无缘无故使用static,按惯用方式使用就行了。
    • 我知道它没有播放。我只是以更有趣的方式说出来。非常感谢您的帮助。我只是问这些问题是为了确定,而不是设计和实施从一开始就有问题的东西,他们必须从头再来。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 2018-07-31
    • 1970-01-01
    • 2018-05-31
    • 2016-10-20
    • 2019-06-21
    • 2021-07-06
    • 2011-11-28
    相关资源
    最近更新 更多