用户提交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)。
您需要使用PRG模式:Post / Redirect / Get。
在此处阅读有关内容:http : //en.wikipedia.org/wiki/Post/Redirect/Get