一、呼叫方法
從servlet調(diào)用傳播、重定向的語(yǔ)句如下:
Reque ('new.jsp ')。forward (request、response);//轉(zhuǎn)發(fā)到new.jsp
re(' new . JSP ');//重定向到new.jsp
您也可以在Jsp頁(yè)面以下列方式檢視傳輸:
JSP : forward page=' a;/
當(dāng)然,您也可以從JSP頁(yè)面執(zhí)行重定向。
% re(“new . JSP”);//重定向到new.jsp%
二、差異
1.請(qǐng)求轉(zhuǎn)發(fā)是服務(wù)器行為,重定向是客戶端行為。
下面看兩個(gè)動(dòng)作的工作流程:轉(zhuǎn)發(fā)過(guò)程:客戶瀏覽器發(fā)送http請(qǐng)求 → web服務(wù)器接受此請(qǐng)求 → 調(diào)用內(nèi)部的個(gè)方法在容器內(nèi)部完成請(qǐng)求處理和轉(zhuǎn)發(fā)動(dòng)作 → 將目標(biāo)資源發(fā)送給客戶;在這里,轉(zhuǎn)發(fā)的路徑必須是同一個(gè)web容器下的url,其不能轉(zhuǎn)向到其他的web路徑上去,中間傳遞的是自己的容器內(nèi)的request。在客戶瀏覽器路徑欄顯示的仍然是其第一次訪問(wèn)的路徑,也就是說(shuō)客戶是感覺(jué)不到服務(wù)器做了轉(zhuǎn)發(fā)的,轉(zhuǎn)發(fā)行為是瀏覽器只做了一次訪問(wèn)請(qǐng)求。
重定向過(guò)程:客戶瀏覽器發(fā)送http請(qǐng)求 → web服務(wù)器接受后發(fā)送302狀態(tài)碼響應(yīng)及對(duì)應(yīng)新的location給客戶瀏覽器→客戶瀏覽器發(fā)現(xiàn)是302響應(yīng),則自動(dòng)再發(fā)送一個(gè)新的http請(qǐng)求,請(qǐng)求url是新的location地址→服務(wù)器根據(jù)此請(qǐng)求尋找資源并發(fā)送給客戶。在這里location可以重定向到任意URL,既然是瀏覽器重新發(fā)出了請(qǐng)求,則就沒(méi)有什么request傳遞的概念了。在客戶瀏覽器路徑欄顯示的是其重定向的路徑,客戶可以觀察到地址的變化的,重定向行為是瀏覽器做了至少兩次的訪問(wèn)請(qǐng)求的。
2.重定向,其實(shí)是兩次request, 第一次,客戶端request A,服務(wù)器響應(yīng),并response回來(lái),告訴瀏覽器,你應(yīng)該去B。這個(gè)時(shí)候?yàn)g覽器看到地址變了,而且歷史的回退按鈕也亮了。重定向可以訪問(wèn)自己web應(yīng)用以外的資源。在重定向的過(guò)程中,傳輸?shù)男畔?huì)被丟失。
請(qǐng)求轉(zhuǎn)發(fā)是服務(wù)器內(nèi)部把對(duì)一個(gè)request/response的處理權(quán),移交給另外一個(gè) 對(duì)于客戶端而言,它只知道自己最早請(qǐng)求的那個(gè)A,而不知道中間的B,甚至C、D。 傳輸?shù)男畔⒉粫?huì)丟失。
通俗的例子:
假設(shè)你去辦理某個(gè)執(zhí)照,
重定向:你先去了A局,A局的人說(shuō):“這個(gè)事情不歸我們管,去B局”,然后,你就從A退了出來(lái),自己乘車去了B局。
轉(zhuǎn)發(fā):你先去了A局,A局看了以后,知道這個(gè)事情其實(shí)應(yīng)該B局來(lái)管,但是他沒(méi)有把你退回來(lái),而是讓你坐一會(huì)兒,自己到后面辦公室聯(lián)系了B局的人,讓他們辦好后,送了過(guò)來(lái)。
1.《重定向?yàn)g覽器怎么知道?我來(lái)告訴你答案重定向和請(qǐng)求轉(zhuǎn)發(fā)的區(qū)別(簡(jiǎn)單通俗)》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《重定向?yàn)g覽器怎么知道?我來(lái)告訴你答案重定向和請(qǐng)求轉(zhuǎn)發(fā)的區(qū)別(簡(jiǎn)單通俗)》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/gl/3000704.html