jsp - 从 Jsp 页面插入表中的冗余数据

标签 jsp back-button browser-refresh cross-page-postback

我有一个 jsp 页面,填充该页面后,它会转到另一个只读的报告页面。单击第一个表单上的提交,它会转到第二个报告页面并将数据保存到数据库中。我在报告第二个表单上有后退按钮,或者我刷新页面报告表单,它将相同字段的副本保存在数据库中。

我在这里可能做错了什么?

最佳答案

有很多方法可以解决这个问题

session token
使用 session token 来确定导致初始提交的表单是否已被处理。

重定向
使用重定向而不是直接从执行您不想复制的操作的 servlet 转发到 View 。

例如:假设在插入行后,您希望显示一个页面,该页面显示该行所代表的实体。在您的插入 servlet 中,您将执行 SQL 插入操作,但随后您不会直接转到显示页面。您将重定向到一个获取插入结果的 servlet,然后该 servlet 转发到显示页面。
这样,在刷新时,发生的所有事情就是 servlet 重新获取记录并显示它。不能发生多次插入。

关于jsp - 从 Jsp 页面插入表中的冗余数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848953/

相关文章:

jsp - 在 JSP 中将枚举值作为标记属性传递

ios - swift 3 IOS - 后退按钮问题

javascript - window.onbeforeunload 在 IE 中触发部分回发事件

java - 使用 Java 在 WebDriver 中通过 Ctrl+F5 刷新浏览器

AngularJS $timeout 有时有效有时无效

jsf - 通过链接或后退按钮打开时强制 JSF 刷新页面/ View /表单

java - JSP 页面显示集合日期

linux - 从另一个 linux 服务器连接 linux 平台中的 postgres 服务器

spring - 通过 Spring MVC 框架包含其他 JSP 是个好主意吗?

ajax - HTML5 历史 : Problems with back button after full page load