一尘不染

用户刷新页面时,将重新提交HTML表单-如何阻止这种情况发生?

jsp

用户提交html表单(使用method =“
post”)后,会将其带回到他们所在的页面(但某些数据已更改)。如果用户刷新页面,则将再次提交表单。在我的应用程序中,这可能会创建一个非法状态(因为表单数据是在未经验证的情况下提交的)。

当用户刷新页面时,如何防止提交表单?

以下是一些示例代码,可让您基本了解发生的情况:

<script type="javascript">
function verifyForm() {
//do stuff
}
...
<form onsubmit="return verifyForm();" method="post">
<input name="testing" type="text" size="8" />
<input name="save" type="submit value="Submit Form" />
</form>

然后在JSP控制器中:

public class myController implements Controller
{ 
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception
{
// do stuff with the form data received in the request
}
}

我可能有几个地方可以解决此问题:在html页面本身中,或在控制器中(在jsp中使用MVC模式)。到目前为止,我已经发现这个问题似乎几乎适用于我的问题,但是似乎并没有问同样的事情(也是我没有使用PHP)。


阅读 313

收藏
2020-06-10

共1个答案

一尘不染

您需要使用PRG模式:Post / Redirect / Get。

在此处阅读有关内容:http :
//en.wikipedia.org/wiki/Post/Redirect/Get

2020-06-10