2012-04-26 60 views
1

通過servlet插入到數據庫後,我將頁面重定向到「home」頁面。但是,當我刷新時,數據仍然傳遞並在數據庫中出現重複。Servlet在頁面刷新時仍然傳遞數據

系統流程是這樣的:其中項目列出我打開一個頁面,當我點擊一個項目,我改變一個div在頁面中顯示註釋文本區域。當我點擊提交評論時,這些值被插入到數據庫中,頁面被重定向到沒有項目列表的頁面。但是,當我刷新,數據仍然通過。

有誰知道我可以如何實際刪除數據或不刷新數據?謝謝!

+0

刷新頁面時,地址欄上的網址是什麼?瀏覽器是否要求您重新提交表單? – 2012-04-26 05:16:28

回答

0

症狀表明您實際上是轉發請求到主JSP,而不是重定向。真正redirect after post,這個問題根本不應該發生。

所以,請確保你真的執行重定向如下

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

,因此不向前如下

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

如果用戶想要傳遞數據請求屬性,這將不起作用。 – 2012-04-26 07:21:13

+0

然後將其包含在重定向網址中。 – BalusC 2012-05-11 12:43:43

0

最有可能的情況是在提交第一次請求後,瀏覽器中的url被改變,並且它指向servlet-URL.So當你點擊刷新按鈕時,它直接調用servlet,因此同一個進程再次執行。 例如 -

當前瀏覽器的網址是 - www.myurl.com/mypage.jsp

和請求URL是www.myurl.com/mypage.action(indicate與Servlet)

在提交第一次請求後在瀏覽器的URL會www.myurl.com/mypage.action

所以每當您刷新它直接調用servlet頁面。

解決方案是 - 在servlet的再次重定向jsp頁面完成請求後。