1

我编写了一个 JSP 应用程序,其中多个用户可以同时登录,并且都可以访问一个表来插入记录。

我需要有一个正在插入的总记录的运行计数器(对于所有用户),我想在插入完成之前在页面上显示它(当用户按下提交按钮时插入完成..

因此,尝试更详细地解释一下;user_a 登录。在插入页面上,他被告知他正在插入记录 1。按下提交时,记录被插入。user_b 登录并在插入页面上看到他插入记录 2,当他向表中提交一条新记录时,计数器跳转到 2。

问题是我希望在用户完成插入之前显示计数器(所以我不能返回 unique_id)。

我知道我可以在插入完成之前获取最后一个 unique_id 并添加 1,但是我将如何保留该记录知道第二个用户可能同时也想要插入记录(使用我刚才描述的方法他会获得相同的 unique_id 并添加 1) - 两个用户最终得到相同的号码。此外,如果用户不提交插入,则该数字不得增加......所以几乎是计数器类型的回滚。

问:我可以使用什么策略来满足显示当前表中的总记录数,以便用户知道他正在输入的记录数?(如果需要,我可以更改数据库。)我真的在寻找如何实现这一点的想法,而不是仅仅给我代码。

4

1 回答 1

1

由于您有一个 Web 应用程序并且 HTTP 是无状态的,因此在将 HTTP 响应发送回用户之后,您无法确定全局计数器。改变id的类型怎么样?例如作为用户和记录标识符的组合?这样,您只需要处理同一用户同时从多个浏览器访问 Web 应用程序的情况。您仍然可以显示记录总数以及下一条记录的可能下一个标识符。另一种选择是使用UUID,它可以在表单返回给客户端时准备(并记住),但 UUID 很难记住。

于 2013-10-09T07:45:38.997 回答