2012-05-22 28 views
1

我有一個簡單的html頁面,目的是對寫入數據庫的實體執行更改。該頁面有兩種形式:SendRedirect與Java Servlets中的正向用例

  • GET:選擇實體改變
  • POST:處理變爲實體,當進行POST操作,我希望它寫入數據庫

再次顯示相同的頁面,另外我想保持GET操作設置的實體參數。目前我做的的doPost方法的末尾以下內容:

response.sendRedirect(path + "?entity=" + entityValue); 

這工作完全正常,但閱讀forward and sendRedirect之間的分歧後,我想​​我必須使用着,但由於這是行不通的doGet方法不會像sendRedirect那樣執行。那麼我的方法是否正確?還是應該以另一種方式解決?

+0

爲什麼你覺得你必須使用前進?鏈接問題中的最佳答案已經建議在成功POST後使用重定向。 – BalusC

回答

8

你的方法非常好。它使用post-redirect-get模式,該模式具有以下幾個優點:

  • 乾淨的URL,它是可收藏,可通過電子郵件,例如發送
  • 沒有通過點擊刷新按鈕
  • 乾淨導航通過重新提交修改的風險get和崗位的URL之間的責任的瀏覽器歷史記錄
  • 分離

所以把一切都因爲它是。在這種情況下,轉發是比重定向更不理想的解決方案。