forward方式:request.getrequestdispatcher("/somepage.jsp").forwardrequest, response);
redirect方式:response.sendredirect("/somepage.jsp");
forward是伺服器內部重定向,程式收到請求後重新定向到另乙個程式,客戶機並不知道;redirect則是伺服器收到請求後傳送乙個狀態頭給客 戶,客戶將再請求一次,這裡多了兩次網路通訊的來往。當然forward也有缺點,就是forward的頁面的路徑如果是相對路徑就會有些問題了。 forward 會將 request state , bean 等等資訊帶往下乙個 jsp
redirect 是送到 client 端後再一次 request , 所以資料不被保留.
使用 forward 你就可以用 getattribute() 來取的前乙個 jsp 所放入的 bean 等等資料
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");%>得不到。
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中和...