圖解sendRedirect include forward的區別
阿新 • • 發佈:2018-12-22
最近遇到幾個人出現了和這三個有關的問題,特別是sendRedirect使用request.getAttribute的問題。我這裡給出三個的主要區別並提供一個圖形參考。
原文:http://www.java2000.net/p10576
一、sendRedirect
使用方式:
servlet和jsp裡面一樣
伺服器根據邏輯,傳送一個狀態碼,告訴瀏覽器重新去請求指定的地址,一般來說,你會把需要的引數放在轉發的地址裡面。
注意:使用request.setAttribute的內容,不能讀取了,你可以用session代替,或者用include,forward代替。
流程圖
二、include
使用方式
servlet裡面
頁面會同時包含頁面1和頁面2的內容,位址列不變。
使用request.setAttribute的內容,可以正常使用
流程圖
三、forward
使用方式
servlet裡面
頁面會是頁面2的內容,位址列不變
使用request.setAttribute的內容,可以正常使用
流程圖
特殊提示
include 和 sendRediect 之後,後面的語句會繼續執行,所以應該在合適的位置寫上return;forward的不會
原文:http://www.java2000.net/p10576
一、sendRedirect
使用方式:
servlet和jsp裡面一樣
- response.sendRedirect();
伺服器根據邏輯,傳送一個狀態碼,告訴瀏覽器重新去請求指定的地址,一般來說,你會把需要的引數放在轉發的地址裡面。
注意:使用request.setAttribute的內容,不能讀取了,你可以用session代替,或者用include,forward代替。
流程圖
二、include
使用方式
servlet裡面
- request.getRequestDispatcher("jsp2.jsp").include(request, response);
- <jsp:include page="include.jsp"/>
頁面會同時包含頁面1和頁面2的內容,位址列不變。
使用request.setAttribute的內容,可以正常使用
流程圖
三、forward
使用方式
servlet裡面
- request.getRequestDispatcher("jsp2.jsp").forward(request, response);
- <jsp:forward page=
頁面會是頁面2的內容,位址列不變
使用request.setAttribute的內容,可以正常使用
流程圖
特殊提示
include 和 sendRediect 之後,後面的語句會繼續執行,所以應該在合適的位置寫上return;forward的不會