jsp中redirect和forward的區別

2021-06-16 20:13:24 字數 1849 閱讀 8536

在網上看到一些帖子,總結了一些區別,可以從以下幾個方面來看:

1.從位址列顯示來說

forward是伺服器請求資源,伺服器直接訪問目標位址的url,把那個url的響應內容讀取過來,然後把這些內容

再發給瀏覽器.瀏覽器根本不知道伺服器傳送的內容從**來的,所以它的位址列還是原來的位址.

redirect是服務端根據邏輯,傳送乙個狀態碼,告訴瀏覽器重新去請求那個位址.所以位址列顯示的是新的url.所

以redirect等於客戶端向伺服器端發出兩次request,同時也接受兩次response。

2.從資料共享來說

forward:**頁面和**到的頁面可以共享request裡面的資料.

redirect:不能共享資料.

redirect不僅可以重定向到當前應用程式的其他資源,還可以重定向到同乙個站點上的其他應用程式中的資源,

甚至是使用絕對url重定向到其他站點的資源.

forward,方法只能在同乙個web應用程式內的資源之間**請求.

forward 是伺服器內部的一種操作.

redirect 是伺服器通知客戶端,讓客戶端重新發起請求.

所以,你可以說 redirect 是一種間接的請求, 但是你不能說"乙個請求是屬於forward還是redirect "

3.從運用地方來說

forward:一般用於使用者登陸的時候,根據角色**到相應的模組.

redirect:一般用於使用者登出登陸時返回主頁面和跳轉到其它的**等.

4.從效率來說

forward:高.

redirect:低.

5.jsp 語法

"} />

或者這樣寫:

"} >

}" />+

6.例子

描述標籤從乙個jsp檔案向另乙個檔案傳遞乙個包含使用者請求的request物件.標籤以下的**,將不能執行.

你能夠向目標檔案傳送引數和值,在這個例子中我們傳遞的引數名為username,值為scott,如果你使用了標籤的話,目標檔案必須是乙個動態的檔案,能夠處理引數.

如果你使用了非緩衝輸出的話,那麼使用時就要小心。

如果在你使用之前,jsp檔案已經有了資料,那麼檔案執行就會出錯.

屬性page=""

這裡是乙個表示式或是乙個字串用於說明你將要定向的檔案或url.這個檔案可以是jsp,程式段,或者其它能夠處理request物件的檔案(如asp,cgi,php).

}" />+

向乙個動態檔案傳送乙個或多個引數,這個檔案一定是動態檔案.

如果你想傳遞多個引數,你可以在乙個jsp檔案中使用多個。name指定引數名,value指定引數值.

例子<%@ page contenttype="text/html;charset=gb2312" %>

forwardto.jsp

<%@ page contenttype="text/html;charset=gb2312" %>

<%

string usename=request.getparameter("username");

string outstr= "謝謝光臨!";

outstr+=usename;

out.println(outstr);

%>

redirect的例子:

譬 如:client 通過***/index.jsp?name=gauss&pwd=123訪問index.jsp,而index.jsp中有< jsp:forward page="login.jsp"/>,則在login.jsp中可以通過request.getparameter()得到name和pwd, 而<%response.sendredirect("login.jsp");%>得不到。

以上摘抄自:

jsp中forward和redirect的區別

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

jsp中 forward 與 redirect區別

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

JSP中forward與redirect的區別

1.執行forward後依然是上一次請求,而執行redirect後生成第二次請求。2.forward的目標頁面可以訪問原請求的請求引數,因為是同一次請求,所有原請求的引數和request範圍內的屬性全部存在 redirect的目標頁面不可以訪問原請求的請求引數,因為是不是同一次請求,所有原請求的引數...