Servlet仍然在页面刷新时传递数据

时间:2012-04-26 05:14:13

标签: jsp servlets refresh

通过servlet插入数据库后,我将页面重定向到“主页”页面。但是,当我刷新时,仍会传递数据,并且数据库中会出现重复数据。

系统流程如下:我加载了一个列出项目的页面,当我点击一个项目时,我更改页面中的div以显示textarea以供注释。当我单击提交注释时,值将插入到数据库中,页面将重定向到没有项目列表的页面。但是,当我刷新时,数据仍然通过。

有谁知道我怎样才能真正删除数据或者不刷新数据?谢谢!

2 个答案:

答案 0 :(得分:0)

症状表明您实际上请求转发到主JSP,而不是重定向。使用真实redirect after post时,根本不会出现此问题。

因此,请确保您真正执行重定向,如下所示

response.sendRedirect(request.getContextPath() + "/home.jsp");

因此不是如下的前进

request.getRequestDispatcher("/home.jsp").forward(request, response);

答案 1 :(得分:0)

最可能的情况是在提交第一个请求之后,浏览器中的url被更改并且它指示servlet-URL.So当你点击刷新按钮时它直接调用servlet,因此同一个进程再次执行。 例如 -

您当前的浏览器网址是 - www.myurl.com/mypage.jsp

请求网址是www.myurl.com/mypage.action(indication to servlet)

提交第一个请求后,浏览器中的网址将为www.myurl.com/mypage.action

所以无论何时刷新页面,都会直接调用servlet。

解决方法是 - 在完成请求后,再次在servlet中重定向jsp页面。