在用户提交一个 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)。