我有一个 jsp 页面,填充该页面后,它会转到另一个只读的报告页面。单击第一个表单上的提交,它会转到第二个报告页面并将数据保存到数据库中。我在报告第二个表单上有后退按钮,或者我刷新页面报告表单,它将相同字段的副本保存在数据库中。
我在这里可能做错了什么?
最佳答案
有很多方法可以解决这个问题
session token
使用 session token 来确定导致初始提交的表单是否已被处理。
重定向
使用重定向而不是直接从执行您不想复制的操作的 servlet 转发到 View 。
例如:假设在插入行后,您希望显示一个页面,该页面显示该行所代表的实体。在您的插入 servlet 中,您将执行 SQL 插入操作,但随后您不会直接转到显示页面。您将重定向到一个获取插入结果的 servlet,然后该 servlet 转发到显示页面。
这样,在刷新时,发生的所有事情就是 servlet 重新获取记录并显示它。不能发生多次插入。
关于jsp - 从 Jsp 页面插入表中的冗余数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848953/