gpt4 book ai didi

java - 使用远程 EJB 和 Web 服务保持状态

转载 作者:行者123 更新时间:2023-12-04 07:05:57 27 4
gpt4 key购买 nike

我有一个基于 Web 的应用程序,它使用远程 EJB 来实现其业务逻辑。其中一些 EJB 也作为 Web 服务公开。我需要为这些调用中的一些保留一个小的状态,以便允许后续调用正常运行。您会推荐以下哪项?

  • 有状态 EJB(这是否适用于 Web 服务?)
  • 将状态返回给客户端(如果我想阻止客户端更改状态怎么办?)
  • 在每个方法上从数据库重新加载状态(我应该担心开销吗?)
  • 最佳答案

    所有三个建议的解决方案都可以工作,但最佳解决方案将取决于您的应用程序的详细信息。

    我根本不使用有状态 session Bean (SFSB)。 SFSB 旨在保持 session 状态,但通过 Web 服务使用它们会引发有关 session 究竟是什么的问题?如果您有一个复杂的部署环境或用户使用应用程序的多个实例,那么这可能是一个脆弱的解决方案。

    返回状态 - 如问题所示,除非您确定服务器可以信任其客户端,否则可能存在安全问题。您可以使用加密技术来验证状态对象未被修改,但不将敏感数据提供给潜在的敌对客户端要安全得多。另一种可能有用的情况是,如果允许客户端更改状态,或者如果客户端这样做不会造成任何伤害。如果客户端对系统的访问总是通过 web 层,这是一个存储 session 状态的好地方。 Web 层和应用层可以安全地交换状态对象。

    从数据库重新加载状态可能是最普遍适用的方法。如果您使用实体 bean 或对象关系映射库,那么服务器应该能够减少数据库查询的数量。

    关于java - 使用远程 EJB 和 Web 服务保持状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1124056/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com