處理髮布到Java Servlet的表單驗證的一種策略是在驗證失敗時轉發回原始JSP視圖。這允許用戶看到他們剛剛提交的表單(可能他們沒有爲必填字段提供值)的上下文中存在驗證失敗,然後他們可以重試。但是,由於該策略不遵循着名的Post-Redirect-Get模式(http://en.wikipedia.org/wiki/Post/Redirect/Get),因此瀏覽器歷史現在包含不可書籤的頁面。如果用戶稍後嘗試通過歷史記錄/後退按鈕訪問此頁面,則它們將獲得文檔過期異常(至少在Firefox 19中)。這應如何處理?有沒有更好的辦法?Servlet轉發後驗證失敗和Post-Redirect獲取
注意:我正在描述的策略實際上是在Servlet信息頁面中推薦的:(https://stackoverflow.com/tags/servlets/info)。雖然沒有提到瀏覽器歷史問題。 (JSF PRG with validation error)。它建議在帖子中使用AJAX。如果這是推薦的策略,也許我們需要更新Servlet wiki?不完全確定這將如何從JSF轉換爲servlet。
您能否介紹一下它爲何存在缺陷。 – 2014-06-23 07:57:20
@「Jafar Ali」問題在於瀏覽器歷史記錄,並確保該歷史記錄中的所有頁面實際上都是可書籤的頁面,而不是在發佈後返回的頁面,因爲這會導致許多現代瀏覽器中的過期頁面消息。 – Ryan 2014-06-23 13:39:28