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

forward和sendRedirect的區別

jsp:forward和response.sendRedirect()的區別

可以簡單從四個方面來分析:

1.從位址列顯示來說(表面區別)

forward是伺服器請求資源,伺服器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器.瀏覽器根本不知道伺服器傳送的內容從哪裡來的,所以它的位址列還是原來的地址.
redirect是服務端根據邏輯,傳送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以位址列顯示的是新的URL.

2.從資料共享來說

forward:轉發頁面和轉發到的頁面可以共享request裡面的資料.
redirect:不能共享資料.

3.從運用地方來說(重點)

forward:一般用於使用者登陸的時候,根據角色轉發到相應的模組.
redirect:一般用於使用者登出登陸時返回主頁面和跳轉到其它的網站等.

4.從效率來說

forward:高.
redirect:低.