forward與redirect的認識

2021-08-09 13:43:05 字數 963 閱讀 7128

在進行web開發時,跳轉是最常見的,今天在這裡來學習下2種跳**

第一種是request.getrequestdispatcher().forward(request,response):

1、屬於**,也是伺服器跳轉,相當於方法呼叫,在執行當前檔案的過程中轉向執行目標檔案,兩個檔案(當前檔案和目標檔案)屬於同一次請求,前後頁共用乙個request,可以通過此來傳遞一些資料或者session資訊,request.setattribute()和request.getattribute()。

2、在前後兩次執行後,位址列不變,仍是當前檔案的位址。

3、不能轉向到本web應用之外的頁面和**,所以轉向的速度要快。

4、url中所包含的「/」表示應用程式(專案)的路徑。

第二種是response.sendredirect():

1、屬於重定向,也是客戶端跳轉,相當於客戶端向服務端傳送請求之後,伺服器返回乙個響應,客戶端接收到響應之後又向服務端傳送一次請求,一共是2次請求,前後頁不共用乙個request,不能讀取轉向前通過request.setattribute()設定的屬性值。

2、在前後兩次執行後,位址列發生改變,是目標檔案的位址。

3、可以轉向到本web應用之外的頁面和**,所以轉向的速度相對要慢。

4、url種所包含的"/"表示根目錄的路徑。

特殊的應用:對資料進行修改、刪除、新增操作的時候,應該用response.sendredirect()。如果是採用了request.getrequestdispatcher().forward(request,response),那麼操作前後的位址列都不會發生改變,仍然是修改的控制器,如果此時再對當前頁面重新整理的話,就會重新傳送一次請求對資料進行修改,這也就是有的人在重新整理一次頁面就增加一條資料的原因。

如何採用第二種方式傳遞資料:

1、可以選擇session,但要在第二個檔案中刪除;

2、可以在請求的url中帶上引數,如"add.htm?id=122"

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與include的區別

forward與 include 的區別 標籤用於把另外乙個資源的輸出內容插入進當前 jsp頁面的輸出內容之中,這種在 jsp頁面執行時的引入方式稱之為動態引入。從乙個jsp檔案傳遞 request 資訊到另外乙個 jsp檔案,後面的部分將不會被執行。可以使用 傳遞引數。將包含的檔案放在 jsp中和...