2015-12-03 69 views
0

我有JSP与用户的登记表页,并添加提交按钮:的java JSP网页缓存POST请求

<input type="submit" name="action" value="add"/> 

形式的方法是POST。我在这里的问题是,当我填写表格,推加 - 一切正常 - 用户被添加,但是当我按刷新页面 - 同POST请求被发送,PSQL异常被抛出(dublicate用户)和我的应用程序停止工作(因为我配置了)。我的问题是如何禁用这种行为 - 这意味着当我按刷新,我得到空白页面。

+4

实现[Post/Redirect/Get](https://en.wikipedia.org/wiki/Post/Redirect/Get)。 – kryger

+0

@ kryger是对的。您可以在着陆页(表单提交后)或管理POST的servlet中使用<%response.sendRedirect(“my.jsp”)%> scriptlet,这应该可以解决问题。 – jsfviky

+0

是的。你没事。建议的解决方案完美工作。 – ovod

回答

1

由于@kryger说 - Post/Redirect/Get是你的格局。

主要想法是在POST后重定向浏览器以使用GET加载下一页。这样,如果刷新浏览器/重新加载页面,则重新加载将发生在GET上 - 这是安全的。

在JSP重定向可以是一个有点棘手 - 如果你没有,你需要确保

response.sendRedirect("pagetoget.jsp"); 
return; 

响应被提交之前调用任何servlet或其他到位(之前的任何写入字节)。如果您单独使用JSP和JSP,您应该通过以<%开始您的jsp并在开始时执行该代码。