我有 JSP 页面,其中包含用户注册表单并添加提交按钮:
<input type="submit" name="action" value="add"/>
表单方法是 POST 。我的问题是,当我填写表单时,按下添加 - 一切正常 - 用户已添加,但是当我按下刷新页面时 - 发送相同的 POST 请求, PSQL异常抛出(dublicate用户),我的应用程序停止工作(因为我这样配置)。我的问题是如何禁用这种行为 - 这意味着当我按下刷新时,我会得到空页。
答案 0 :(得分:1)
正如@kryger所说 - Post/Redirect/Get就是你的模式。
主要思想是在POST后重定向浏览器以使用GET加载下一页。这样,如果刷新浏览器/重新加载页面,则重新加载将在GET上发生 - 这是安全的。
在JSP中,重定向可能有点棘手 - 如果你没有任何Servlet,或者你需要确保
response.sendRedirect("pagetoget.jsp");
return;
在提交响应之前(在写入任何字节之前)调用。如果您单独使用JSP和JSP,则应该通过使用&lt;%启动jsp并在开头执行该代码来实现此目的。