Java 多个选项卡上的同一会话

Java 多个选项卡上的同一会话,java,session,Java,Session,如果用户使用同一会话打开浏览器上的多个选项卡,我会遇到一些问题 用户打开选项卡1,导航至交易1001详细信息 右键单击并在同一浏览器上打开另一个选项卡,导航到trade 1002 details 返回表1,修改交易1001详情。相反,交易1001详细信息被交易1002详细信息覆盖 我正在使用WebSphere8.0。该页面的作用域为请求 有什么好的、易于维护的解决方案可以防止这种情况吗?您在会话/cookies中保存事务性详细信息,这是一个坏主意,ID等应作为隐藏字段在表单中传递。您在会话/co

如果用户使用同一会话打开浏览器上的多个选项卡,我会遇到一些问题

  • 用户打开选项卡1,导航至交易1001详细信息
  • 右键单击并在同一浏览器上打开另一个选项卡,导航到trade 1002 details
  • 返回表1,修改交易1001详情。相反,交易1001详细信息被交易1002详细信息覆盖
  • 我正在使用WebSphere8.0。该页面的作用域为请求


    有什么好的、易于维护的解决方案可以防止这种情况吗?

    您在会话/cookies中保存事务性详细信息,这是一个坏主意,ID等应作为隐藏字段在表单中传递。

    您在会话/cookies中保存事务性详细信息,这是一个坏主意,id等应作为表单中的隐藏字段传递。

    Ankit的投票,当您打开新选项卡时,确保您有一个特定于选项卡的id作为隐藏输入字段,例如产品id

    从这一点开始,您可以采取两种方法,即无状态方法,根本不使用会话,从数据库加载所有内容,更新和保存。无状态是一种幸福,如果你能完美地支持它的话。 第二种方法假设您正在使用特定于选项卡的id从会话中检索正确的日期,因此换句话说,特定于选项卡的id将是会话键的一部分

    后一种方法意味着您已经启用了一个对话范围,并且由于您提到您正在使用JSF,所以有一个对对话的支持,请查看文档以了解更多信息。关键是

    Any JSF request has exactly one associated conversation.
    

    具体示例取决于您使用的实现,应该可以在网上找到大量示例,我的想法只是让您知道其支持的

    投票支持Ankit,当您打开一个新选项卡时,确保您有一个特定于选项卡的id作为隐藏输入字段,例如产品id

    从这一点开始,您可以采取两种方法,即无状态方法,根本不使用会话,从数据库加载所有内容,更新和保存。无状态是一种幸福,如果你能完美地支持它的话。 第二种方法假设您正在使用特定于选项卡的id从会话中检索正确的日期,因此换句话说,特定于选项卡的id将是会话键的一部分

    后一种方法意味着您已经启用了一个对话范围,并且由于您提到您正在使用JSF,所以有一个对对话的支持,请查看文档以了解更多信息。关键是

    Any JSF request has exactly one associated conversation.
    

    具体的例子取决于您使用的实现,应该在网上找到大量的例子,我的想法只是让您知道它所支持的

    我同意,在提交表单时,您应该使用ID(主键)来确定应该更新的对象。@Ankit Gupta我如何做到这一点?您是否使用任何框架、jsf等?如果要手动创建表单,可以添加一个类型为hidden的输入字段,并将id作为值传递。@Ankit Gupta Yes。我使用的是JSF 2.0,xhtmlI concur,在提交表单时,您应该使用ID(主键)来确定应该更新的对象。@Ankit Gupta如何实现这一点?您是否使用任何框架、JSF等?如果要手动创建表单,可以添加一个类型为hidden的输入字段,并将id作为值传递。@Ankit Gupta Yes。我使用的是JSF2.0、xhtml