1. 程式人生 > >forward和redirect

forward和redirect

jsp 客戶端 什麽 AR 資源 頁面 net http csdn

forward和redirect是什麽?

是servlet種的兩種主要的跳轉方式。forward又叫轉發,redirect叫做重定向。

forward(轉發):

1.是服務器內部的重定向,服務器直接訪問目標地址的 url網址,把裏面的東西讀取出來,但是客戶端並不知道,因此用forward的話,客戶端瀏覽器的網址是不會發生變化的。
2.關於request: 由於在整個定向的過程中用的是同一個request,因此forward會將request的信息帶到被重定向的jsp或者servlet中使用。

redirect(重定向):

1.是客戶端的重定向,是完全的跳轉。即服務器返回的一個url給客戶端瀏覽器,然後客戶端瀏覽器會重新發送一次請求,到新的url裏面,因此瀏覽器中顯示的url網址會發生變化。


2.因為這種方式比forward多了一次網絡請求,因此效率會低於forward。

差別

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

2.從數據共享來說
forward:轉發頁面和轉發到的頁面可以共享request裏面的數據.
redirect:不能共享數據.

3.從運用地方來說
forward:一般用於用戶登陸的時候,根據角色轉發到相應的模塊.
redirect:一般用於用戶註銷登陸時返回主頁面和跳轉到其它的網站等.

4.從效率來說
forward:高.
redirect:低.

轉自 https://blog.csdn.net/qq_27687701/article/details/53256573

forward和redirect