您好我是服務器端編程(Java)的新手,並且正在讀取SendRedirect與Forward之間的區別。 從Post-redirect-get pattern它解釋,這將阻止通過點擊刷新按鈕重新提交修改。但是,如果服務器端後處理很繁重,並且在服務器處理帖子並在發送3xx重定向之前,用戶刷新頁面?服務器如何知道忽略連續的第二個傳入請求?SendRedirect「防止重新提交」保證?
3
A
回答
0
我明白你的觀點,事實上,PRG保證可以防止雙POST提交,包括後退按鈕,前提是前面的重定向是,所以瀏覽器現在可以發送GET請求。
但是,如果在進行重定向之前運行一個長進程,會發生什麼?
有我來處理這種情況下,兩個已知的方法:
這是合乎邏輯的,PGR目標不會滿足,如果你有一個長期的過程重定向之前做;所以如果有人遇到這種麻煩,那麼您可以簡單地將您的重定向發送到可以向用戶顯示進度的頁面(可選),這類似於Ajax。
這一個我還沒有嘗試過,但它的真正邏輯
Synchronization Token pattern
,所以它基本上是基於在你的頁面設置一個隱藏的道理,那麼當POST請求被髮送到服務器,你會被任何數量的遞增該令牌和store it into session
,所以下次用戶單擊提交按鈕或刷新頁面時,您可以使用compare the token
,每當您的頁面與存儲在會話中的頁面一起顯示時,這是您可以避免處理與同一用戶關聯的相同請求的另一種方式一遍又一遍。
我給你這個鏈接,如果你想查詢更多關於它http://www.deepakgaikwad.net/index.php/2009/03/19/post-redirect-get-design-pattern.html
希望這是有用的......
相關問題
- 1. struts - 防止刷新重新提交
- 2. Laravel 4:防止形式重新提交
- 3. 防止刷新雙重表單提交
- 4. 防止頁面重新加載提交
- 5. PHP Codeigniter;防止表單重新提交
- 6. 防止表單重新提交
- 7. 防止重新提交表單和struts
- 8. 防止在提交後重新加載
- 9. 防止刷新瀏覽器時重新提交提交
- 10. 如何防止在重新提交表單時重新提交表單?
- 11. 防止提交
- 12. 香菜防止提交輸入驗證
- 13. jQuery驗證引擎後防止提交
- 14. jquery驗證條件防止提交
- 15. ListView驗證編輯並防止提交
- 16. Jquery:防止提交後進行驗證
- 17. jQuery驗證 - 防止在遠程提交
- 18. jquery驗證:防止表單提交
- 19. 防止表單提交但保留表單驗證
- 20. 如何保持驗證,但防止表單提交? JQuery
- 21. 防止重新提交瀏覽器刷新數據
- 22. 刷新頁面時防止重新提交
- 23. 防止雙重提交表格
- 24. 防止與a4j雙重提交:commandButton
- 25. 防止重複表單提交
- 26. 防止重複表單提交
- 27. 如何防止重複表單提交
- 28. Ajax和防止雙重「提交」
- 29. 如何防止linkbutton的雙重提交?
- 30. 防止網站雙重提交
這是PRG,而不是PGR :) – skuntsel 2013-04-10 17:58:40
哈哈......你對...我會編輯 – 2013-04-10 18:02:10
只是一個錯字...修正 – 2013-04-10 18:15:47