Notice: Undefined index: in /data/phpspider/phplib/misc.function.php on line 226

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每过一次",;刷新“;在JSP中创建的重复记录_Jsp_Servlets - Fatal编程技术网

每过一次",;刷新“;在JSP中创建的重复记录

每过一次",;刷新“;在JSP中创建的重复记录,jsp,servlets,Jsp,Servlets,我使用JSP作为视图和表单提交,使用Servlet作为控制器(业务逻辑),使用Hibernate作为DAO。每当我创建新记录时,控件就会重定向到列表页面。每次刷新后,都会在数据库中创建重复数据 我在谷歌上搜索了很多,但没有找到任何sutisfactory解决方案。您没有显示任何代码,但我可以猜到两个问题: 您正在使用GET发布一个表单,该表单在数据库中创建了一些内容。你应该使用POST。如果您这样做了,您至少会在刷新页面时收到浏览器发出的警告 您不会重定向到列表页面,但可以转发到列表页面。因此,

我使用JSP作为视图和表单提交,使用Servlet作为控制器(业务逻辑),使用Hibernate作为DAO。每当我创建新记录时,控件就会重定向到列表页面。每次刷新后,都会在数据库中创建重复数据


我在谷歌上搜索了很多,但没有找到任何sutisfactory解决方案。

您没有显示任何代码,但我可以猜到两个问题:

  • 您正在使用GET发布一个表单,该表单在数据库中创建了一些内容。你应该使用POST。如果您这样做了,您至少会在刷新页面时收到浏览器发出的警告
  • 您不会重定向到列表页面,但可以转发到列表页面。因此,刷新时,表单将重新提交,对象将重新创建。使用模式解决此问题

  • 您通过刷新页面重复发布表单…因此数据会重新发送到服务器并执行脚本…检查接收到的数据以进行验证是值得的。为什么刷新时会将数据发送到服务器?大学教师;你不用表格吗?张贴方法?谢谢。:)但是,如何避免这种情况呢?我使用的是html方法“post”。@AnkitKumar您需要重定向您的页面……您应该检查是否未添加重复记录……这取决于您的场景和上下文……感谢Nizet:)。朋友,我在谷歌上搜索了一些关于使用AJAX表单提交的建议。但我是java新手,以前从未使用过AJAX。那么我应该这么做吗?或者后重定向获取是更好的解决方案?从简单开始。使用post重定向获取。AJAX稍后会出现。