Servlet API中forward()(轉發) 與redirect()(重定向)的區別?
forward(轉發),僅是容器中控制權的轉向,在客戶端瀏覽器位址列中不會顯示出轉向後的地址;
forward(轉發)是伺服器請求資源,伺服器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器,瀏覽器根本不知道伺服器傳送的內容是從哪兒來的,所以它的位址列中還是原來的地址。
redirect(重定向),則是完全的跳轉,瀏覽器將會得到跳轉的地址,並重新發送請求連結。
redirect(重定向)就是服務端根據邏輯,傳送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有引數重新請求,所以session、request引數都可以獲取。