forward和redirect有什麼區別

2021-08-31 15:20:27 字數 900 閱讀 8792

redirect和forward的定義:

1. redirect(重定向):服務端傳送給客戶端乙個重定向的臨時響應頭,這個響應頭包含重定向之後的url,客戶端用新的url重新向伺服器傳送乙個請求。

2. forward(請求轉向):伺服器程式內部請求轉向,這個特性允許前乙個程式用於處理請求,而後乙個程式用來返回響應。

forward是伺服器請求資源,伺服器直接訪問目標位址的url,把那個url的響應內容讀取過來,然後把這些內容再發給瀏覽器,瀏覽器根本不知道伺服器傳送的內容是從哪兒來的,所以它的位址列中還是原來的位址。

redirect就是服務端根據邏輯,傳送乙個狀態碼,告訴瀏覽器重新去請求那個位址,一般來說瀏覽器會用剛才請求的所有引數重新請求,所以session,request引數都可以獲取(request不能獲取,在跳轉到的目標頁面不能使用request.getattribute("引數"),該語句失效), 所以

response

.sendredirect()

不能用request

物件傳遞資料,而

forward

是可以的

forward

... forward 由應用程式內部執行

... 瀏覽器完全不會識別到forward命令,

因此原始的url位址會被完好的保留下來

. ...

當瀏覽器重新整理的時候會向原始位址提交請求.

redirect

... redirect 分為兩個步驟, 網路應用程式會指定瀏覽器獲取第二個**,

這個**和原始的url是不同的

. ... 由於redirect 需要兩個步驟,因為執行起來比forward慢

總體說來,

當能夠保證安全的情況下應該採用forward. 否則應該採用redirect.

JAVA中Forward和Redirect的區別

forward和redirect代表了兩種請求 方式 直接 和間接 使用者向伺服器傳送了一次http請求,這個請求可能被直接請求 forward 和間接請求 redirect 兩種 方式有何區別呢?直接 就相當於 a找b借錢,b沒有,b去找c借,並告訴c把錢給a 間接 就相當於 a找b借錢,b沒有,...

jsp中的forward和redirect的區別

一 呼叫方式 我們知道,在servlet中呼叫 重定向的語句如下 request.getrequestdispatcher new.jsp forward request,response 到new.jsp response.sendredirect new.jsp 重定向到new.jsp 在jsp...

forward和sendredirect的區別

sendredirect forward 是不同的 request 雖然是不同的物件,但是,可以取到上乙個頁面的內容 send 後的語句會繼續執行,除非 return forward 後的語句不會繼續傳送給客戶端 速度慢 速度快 需要到客戶端的往返,可以轉到任何頁面,伺服器內部轉換,位址列有變化 位...