1. 程式人生 > >sendRedirect和RequestDispatcher的區別?

sendRedirect和RequestDispatcher的區別?

4.sendRedirect和RequestDispatcher的區別:

馬 克-to-win:response.sendRedirect()與request.getRequestDispatcher().forward ()區別:response.sendRedirect(url)是先回到客戶端,再重新請求url,和過去的請求沒關係。可以訪問任何地方。瀏覽器的位址列也變成了新的url。request.getRequestDispatcher().forward()就乾脆沒回到客戶端,就一直在伺服器裡,從本個web應用的一個資源(servlet,jsp,或html)跳到另一個資源。(所以不能隨便訪問什麼地方

)。而且瀏覽器位址列沒有變。同時可以用request.setAttribute("requestkey","requstvalue1");來傳遞引數。

以上幾點是大家經常談到的幾點不同。底下就是我專門(exclusively)寫給大家的,一點不
同。也許初學者難於理解,望留點印象。
RequestDispatcher會block,因為同在伺服器端。當程式需要從資源1跳到資源2時,資源1
會等資源2執行完,回來以後,再繼續執行下面沒執行的部分。所謂的block。
詳情請見:http://www.mark-to-win.com/index.html?content=Jsp/jspUrl.html&chapter=Jsp/jsp2_web.html#DifferencesendRedirectRequestDispatcher