两个选项卡之间的会话问题

Session issue between two tabs

我有一个 java,基于 j2EE 的 Web 应用程序,由于某些原因,我在页面上使用会话来存储用户输入的一些数据。该页面被运营商用来为公民填写数据。

让我们将该会话属性名称称为 attr1

运营商可能会尝试通过在浏览器上打开一个新选项卡来一次填写多个公民数据。会话属性 attr1 显然会在选项卡之间共享,因此在提交时输入的数据可能不正确。

我在某处读到我可以使用 html5 会话存储,因为它不在选项卡之间共享。但是使用它会使应用程序依赖于浏览器。运营商可能会尝试使用不兼容 html5 的浏览器。

我该如何解决?

您可以在页面的隐藏输入中放入一个值,例如请求页面时在后端生成的时间戳。 这样每个页面都会有一个唯一的值。

然后你可以在会话中放置一个哈希图,其中键值对是生成的时间戳(键)和你需要的对象(值)。

当您提交页面时,您将取回隐藏在其他参数中的输入时间戳,您将能够从您放入会话的地图中检索正确的数据!