日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

网络:forward和redirect的区别

發(fā)布時(shí)間:2025/3/21 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络:forward和redirect的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.forward

request.getRequestDispatcher("new.jsp").forward(request, response);???//轉(zhuǎn)發(fā)到new.jsp

2.redirect

response.sendRedirect("new.jsp");???//重定向到new.jsp

很明顯一個(gè)是用request對(duì)象調(diào)用,一個(gè)是用response對(duì)象調(diào)用,那么,這兩者有什么區(qū)別呢?

一、數(shù)據(jù)共享方面

forward:轉(zhuǎn)發(fā)頁(yè)面和轉(zhuǎn)發(fā)到的頁(yè)面可以共享request里面的數(shù)據(jù)
redirect:不能共享數(shù)據(jù)

二、地址欄顯示方面

forward是服務(wù)器請(qǐng)求資源,服務(wù)器直接訪問(wèn)目標(biāo)地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過(guò)來(lái),然后把這些內(nèi)容再發(fā)給瀏覽器.瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來(lái)的,所以它的地址欄還是原來(lái)的地址.
redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請(qǐng)求那個(gè)地址.所以地址欄顯示的是新的URL.

三、本質(zhì)區(qū)別

轉(zhuǎn)發(fā)是服務(wù)器行為,重定向是客戶端行為。為什么這樣說(shuō)呢,這就要看兩個(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)求的。?


重定向,其實(shí)是兩次request:第一次,客戶端request A,服務(wù)器響應(yīng),并response回來(lái),告訴瀏覽器,你應(yīng)該去B。這個(gè)時(shí)候IE可以看到地址變了,而且歷史的回退按鈕也亮了。重定向可以訪問(wèn)自己web應(yīng)用以外的資源。在重定向的過(guò)程中,傳輸?shù)男畔?huì)被丟失。?

?

總結(jié)

以上是生活随笔為你收集整理的网络:forward和redirect的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。