『壹』 forward和redirect的區別
forward和redirect的區別很大,forward的意思是薯答盯向前的、(按新地址)轉寄、促進、前鋒的意思,而redirect的意思是改變方向、重新寄送。數和
『貳』 java:forward 和redirect的區別是什麼
forward是伺服器內部重定向,redirect則是伺服器收到請求後發送一個狀態頭給客戶。
『叄』 forward和redirect的區別
forward是伺服器內部重定向,程序收到請求後重新定向到另一個程序,客戶機並不肢散斗知道;redirect則是伺服器收到請求後發送一個狀態碼給客 戶,客歷磨戶將再請求一次,這里多了兩次網路通信的來往。
redirect是完全的跳轉,瀏覽器將會得到跳轉的地址, 並重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉後的鏈接地址;
forward是容器中控制權的轉向,在客戶端瀏覽掘碧器地址欄中不會顯示出轉向後的地址,他是不會改變Request的值;
所以,forward更加高效,在forward可以滿足需要時,盡量使用Request Dispatcher.forward()方法,並且,這樣也有助於隱藏實際的鏈接。
『肆』 forward和redirect的區別
1、請求方不同
redirect:客戶端發起的請求
forward:服務端發起的請求
2、瀏覽器地址表現不同
redirect:瀏覽器地址顯示被請求的
urlforward:瀏覽器地址不顯示被請求的url
3、參數傳遞不同
redirect:重新開始一個request,原頁面的request生枝舉命周期結束。
forward:forward另一個連接的時候。request變數是在其生命周期內的。另一個頁面也可以使用,其實質是把目標地址include。
4、底層運作不同
redirect:發送的請求信息又回送給客戶機,讓客戶機再轉發到另一個資源上,需要在伺服器和客戶機之間增加一次通信。
forward:伺服器端直接找到目標,並include過來。
5、定義不同
直接轉發方式(Forward):客戶端和瀏覽器只發出一次請求,Servlet、HTML、jsP或其它信息資源,由第二個信息資源響應該請求,在請求對象request中慧搭弊,保存的對象對於每個信息資源是共享的。
間接轉發方式(Redirect)實際是兩次HTTP請求,伺服器端在響應第一次請求前族的時候,讓瀏覽器再向另外一個URL發出請求,從而達到轉發的目的。
『伍』 forward和redirect的區別
forward和redirect的區別是:
forward
(1)adv.向前;前進地;至將來;提前地。
(2)adj.向前仿敬方的;迅速的;(社會、政治)進步的;早熟的。
(3)vt.促進,助長;(按新地址)轉寄;發送。
(4)n.前鋒。
例句:
(1)He came forward with his hand out. 'Mr and Mrs Selby?' he enquired .
他走上前去伸出手來。「是塞爾比先生和夫人嗎?」他問道。
(2)The best seats are in the aisle and as far forward as possible .
最好的座位在過道處,越靠前越好。
(3)Forward of the main cabin are the guest cabins .
主艙前面是客艙。
(4)Now the leadership wants to look forward, and to outline a strategy for the rest ofthe century.
現在領導層想要展望未備茄慎來,為本世紀餘下的時間勾畫出戰略綱要。
redirect
(1)vt.使改寄,更改(信件等)姓名地址;改變方向,改變線路;重新寄送;再查問(證人等)。
(2)adj.再直接的。
例句:
(1)Controls were used to redistribute or redirect resources.
採用了管控措施來重新納鬧分配資源或改變其流向。
(2)She redirected them to the men's department.
她指引他們去了男裝部。
『陸』 forward和redirect的區別
redirect forward的區別
1.從地址欄顯示來說
forward是伺服器請求資源,伺服器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器.瀏覽器根本不知道伺服器發送的內容從哪裡來的,所以它的地址欄還是原來的地址.
redirect是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL.所以redirect等於客戶端向伺服器端發出兩次request,同時也接受兩次response。
2.從數據共享來說
forward:轉發頁面和轉發到的嘩核頁面可以共享request裡面的數據.
假如從a頁面 到 b頁面 在到c頁面 如果用
在a頁面中:
request.setAttribute("a","aa");<jsp:forward page="b.jsp"></jsp:forward>
在b頁面中:<jsp:forward page="c.jsp"></jsp:forward>跳轉 在c頁面用
request.getAttribute("a")就可以得到a頁面的值,或者用request.getParameter("name")
也可以得到。但是要用response.sendRedirect("b.jsp");跳轉的話就得不到a 頁面的值和內容。
redirect:不能共享數據.
redirect不僅可以重定向到當前應用程序的其他資源,還可以重定向到同一個站點上的其他應用程序中的資源,甚至是使用絕對URL重定向到其他站點的資源.
forward,方法只能在同一個Web應用程序內的資源之間轉發請求.forward 是伺服器內部的一種操作.
redirect 是伺服器通知客戶端,讓客戶端重新發起請求.所以,可以說 redirect 是一種間接的請求, 但是不能說"一個請求是屬於forward還是redirect "
3.從運用地方來說
forward:一般用於用戶登陸的時候,根據角色轉發到相應的模塊.
redirect:一般用於用戶注銷登陸時返回主頁面和跳轉到其它的網站等.
4.從效率來說
forward:高.
redirect:低.
5.jsp 語法
<jsp:forward page={"relativeurl" | "<%= expression %>"} />
或者這樣寫:
<jsp:forward page={"relativeurl" | "<%= expression %>"} >
<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+
</jsp:forward>
6.例子
<jsp:forward page="/servlet/login" />
<jsp:forward page="/servlet/login">
<jsp:param name="username" value="jsmith" />
</jsp:forward>裂慶
描述
<jsp:forward>標簽從一個jsp文件向另一個文件傳遞一個包含用戶請求的request對象.<jsp:forward>標簽以下的代碼,將不能執行.
能夠向目標文件傳送參數和值,在這個例子中我們傳遞的參數名為username,值為scott,如果使用了<jsp:param>標簽的話,目標文件必須是一個動態的文件,能夠處理參數.
如果使用了非緩沖輸出的話,那麼使用<jsp:forward>時就要小心。
如果使用<jsp:forward>之前,jsp文件已經有了數據,那麼文件執行就會出錯.
屬性
page="{relativeurl | <%= expression %>}"
這里是一個表達式或是一個字元串用於說明將要定向的文件或url.這個文件可以是jsp,程序段,或者其它能夠處理request對象的文件(如asp,cgi,PHP).
<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+
向一個動態文件發送一個或多個參數,這個文件一定是動態文件.
如果想傳遞多個參數,可以在一個jsp文件中使用多個<jsp:param>。name指定參數名,value指定參數值.
<jsp:forward>例子
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>test<亂源掘/title>
</head>
<body>
<jsp:forward page="forwardTo.jsp">
<jsp:param name="userName" value="riso"/>
</jsp:forward>
</body>
</html>
forwardTo.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<!--forwardTo.jsp-->
<%
String useName=request.getParameter("userName");
String outStr= "謝謝光臨!";
outStr+=useName;
out.println(outStr);
%>
redirect的例子:
譬 如:client 通過XXX/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");%>得不到。
總結:
A.Redirect等於客戶端向伺服器發出兩次request,同時也接受到兩次response
Forward卻只是一次request一次response
相比之下,Forward性能更高。
B.Forward能夠存儲request Scope的Attribute而Redirect卻不行。
C.Forward的同時URL並不會變。
D.Forward需要在Servlet中需要通過一個Dispatcher來實現。
E.Redirect能夠防止某些情況下客戶端Refresh造成的一些未知後果(例如連續刪除)