我在test1.jsp上有2個jsp頁面test1.jsp和test2.jsp我發佈了一些數據,它將重定向到test2.jsp。但從test2.jsp如果我點擊ie瀏覽器後退按鈕,那麼它顯示網頁已過期頁,所以我應該如何繼續顯示test1.jsp上後退按鈕單擊?我在IE瀏覽器中遇到這個問題。jsp上的IE後退按鈕問題
1
A
回答
1
看看Redirect After Post模式。
2
因此,您實際上並未重定向請求,而只是請求(並轉發)請求。只要您嘗試從瀏覽器歷史記錄中獲取非緩存的POST
請求,您就會收到此錯誤頁面。
您需要POST
後實際重定向請求。這被稱爲POST-Redirect-GET pattern。假設你的web應用的設計很好,您使用的是Servlet
控制,預處理和後處理的要求,那麼所有你需要做的就是調用HttpServletResponse#sendRedirect()
而不是RequestDispatcher#forward()
:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Postprocess request parameters here.
// Finally redirect POST request to a brand new GET request.
response.sendRedirect("result.jsp");
}
這樣,POST
請求贏得在瀏覽器歷史記錄中不會被採納。按下後退按鈕不會再獲得POST
請求,而是在之前調用的請求(即用於使用表單打開/查看頁面的請求)。
唯一需要注意的是,初始請求,包括其所有參數和屬性都將消失,以至於無法在結果頁面中使用它們。如有必要,您可以使用會話作用域或重定向URL中的查詢字符串/路徑信息來解決此問題。
這個特殊的「問題」是順便說一句,不是MSIE特有的。其他瀏覽器會表現相同,但它們只會給出不同的錯誤/警告消息。未來,在明確指出MSIE爲根本原因之前,請使用不同的瀏覽器進行測試。
相關問題
- 1. Jsp,servlet後退按鈕問題
- 2. tornado.web.authenticated後退按鈕問題
- 3. MVC後退按鈕問題
- 4. UINavigationController後退按鈕問題
- 5. cakephp後退按鈕問題
- 6. PJAX:後退按鈕問題
- 7. 後退按鈕問題
- 8. 後退按鈕問題
- 9. UINavigationController後退按鈕問題
- 10. 後退按鈕angularjs問題
- 11. 退出按鈕退出後的問題
- 12. 禁用IE後退按鈕
- 13. Javascript和IE後退按鈕
- 14. iframe後退按鈕問題(不想後退按鈕影響iframe)
- 15. 後退按鈕的問題與Android的
- 16. history.js後退按鈕的問題
- 17. 與後退按鈕的JSF問題
- 18. AS3 Android的後退按鈕問題
- 19. Android中的WebView後退按鈕問題?
- 20. Android的後退按鈕問題
- 21. Android Webview中的後退按鈕問題
- 22. Laravel中的後退按鈕問題
- 23. Android - Android的後退按鈕問題
- 24. 處理後退按鈕的問題
- 25. Ionic 1中的後退按鈕問題
- 26. IE按鈕問題
- 27. 上後退按鈕
- 28. IFrame導致後退按鈕問題
- 29. Windows Phone 7後退按鈕問題
- 30. Chrome/Safari後退按鈕問題
僅供參考:在firfox中工作正常 – 2010-01-18 10:52:49