Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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
Java 避免重复提交Struts2JSP页面_Java_Html_Jsp_Struts2 - Fatal编程技术网

Java 避免重复提交Struts2JSP页面

Java 避免重复提交Struts2JSP页面,java,html,jsp,struts2,Java,Html,Jsp,Struts2,大家好,我有一些jsp页面,我正在使用struts2来处理我的表单。 用户提交表单后,地址栏中显示的url将变为somthing.action,因此当用户刷新页面时,表单将再次提交。我该怎么办?提交表单后。如果目标是防止重复提交表单,则使用令牌拦截器或令牌会话拦截器 如果您只想在提交后刷新页面,而不想再次提交,请重定向到只显示结果而不显示表单的操作。使用redirectAction结果进行此操作。POST redirected GET 需要遵循此模式以防止在刷新时重新提交表单。这意味着,在提交P

大家好,我有一些jsp页面,我正在使用struts2来处理我的表单。
用户提交表单后,地址栏中显示的url将变为somthing.action,因此当用户刷新页面时,表单将再次提交。我该怎么办?提交表单后。

如果目标是防止重复提交表单,则使用
令牌
拦截器或
令牌会话
拦截器


如果您只想在提交后刷新页面,而不想再次提交,请重定向到只显示结果而不显示表单的操作。使用
redirectAction
结果进行此操作。

POST redirected GET

需要遵循此模式以防止在刷新时重新提交表单。这意味着,在提交
POST
请求后,
POST
应发送
重定向
响应,以使用
GET
获取目标页面。使用此模式,如果用户刷新页面,则只会再次发生GET请求,因此在不更新服务器中任何内容的情况下获取相同的页面


这是一种常见的web设计模式。谷歌将为此提供大量资源。

+1其他两个答案

是每种web技术的经典模式

是另一种使用Struts2的方式

如果您不关心与旧浏览器或禁用Javascript的浏览器的追溯兼容性,还有第三种方法:HTML5
window.history.pushState

加载页面后,只需将url重置为原始url,按F5将获得原始页面,而不是重新提交请求

 $(document).ready(function() {
   window.history.pushState("","", "myOriginalUrlWithNoParams");
 });