午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

轉(zhuǎn)發(fā)和重定向的區(qū)別

2019-9-8    seo達(dá)人

簡(jiǎn)單介紹

多個(gè)頁面和 servlet 組成了一個(gè)基于 Java 的 web 應(yīng)用程序。JSP 使用轉(zhuǎn)發(fā)和重定向兩種方式將控制權(quán)從一個(gè) servlet 傳遞到另一個(gè) servlet 或者 JSP。



轉(zhuǎn)發(fā)(Forward)方法: 將請(qǐng)求從一個(gè) servlet 轉(zhuǎn)發(fā)到 web 應(yīng)用程序中的另一個(gè)資源,這個(gè)資源可以是一個(gè) servlet、JSP 頁面、或者 HTML 文件。



重定向(Redirect)方法: 方法將請(qǐng)求重定向到另一個(gè) web 應(yīng)用程序。使用轉(zhuǎn)發(fā)( Forward )方法無法完成此操作。如果一個(gè)重定向命中了同一個(gè) web 應(yīng)用程序的不同資源,那么它使用的 URL 將與原始請(qǐng)求的 URL 不同。如果你不想響應(yīng)一個(gè)請(qǐng)求,你可以將請(qǐng)求重定向到一個(gè)不同的 URL,然后瀏覽器將會(huì)將你的新請(qǐng)求重定向到你提供的新的 URL。這篇文章詳細(xì)解釋了兩種方式的不同之處。



什么是轉(zhuǎn)發(fā)(Forward)

在基于 web 的系統(tǒng)或者應(yīng)用程序中,通常需要在不同的資源或 JSP 之間轉(zhuǎn)移控制權(quán)。例如:你如希望從電子商務(wù)網(wǎng)站下單,則需要先進(jìn)行注冊(cè),然后才可以繼續(xù)。如果你還未在他們的系統(tǒng)中注冊(cè),那么購(gòu)物車界面可能會(huì)將控制權(quán)轉(zhuǎn)移到負(fù)責(zé)注冊(cè)過程的 JSP 表單。轉(zhuǎn)發(fā)( Forward )方法即是用于此目的。它用于將請(qǐng)求從一個(gè) JSP 轉(zhuǎn)發(fā)到統(tǒng)一上下文中的另一個(gè)資源。



什么是重定向(Redirect)

此方法也用于轉(zhuǎn)發(fā) HTTP 請(qǐng)求,但與轉(zhuǎn)發(fā)( Forward )不同的是:它是一個(gè)兩步過程,其中重定向發(fā)生在客戶端到不同的應(yīng)用程序。Redirect 方法將用戶重定向到新的 URL。客戶端的瀏覽器會(huì)自動(dòng)對(duì)來自服務(wù)器中的重定向表頭中指定的 URL 發(fā)出新的請(qǐng)求。它需要與客戶機(jī)進(jìn)行往返通訊,因此相對(duì)來說會(huì)比轉(zhuǎn)發(fā)( Forward )方法慢些。



轉(zhuǎn)發(fā)(Forward)與重定向(Redirect)區(qū)別

轉(zhuǎn)發(fā)(Forward)與重定向(Redirect)的描述

Forward() 方法用于將請(qǐng)求從一個(gè) JSP 轉(zhuǎn)發(fā)到另一個(gè) JSP,或從一個(gè) JSP 轉(zhuǎn)發(fā)到另一個(gè) servlet,或從一個(gè) JSP 轉(zhuǎn)發(fā)到 web 應(yīng)用程序的另一個(gè)資源。控制是在容器的內(nèi)部傳遞的,瀏覽器/客戶機(jī)不參與此過程。Forward( )方法在 RequestDispatcher 中聲明。



Sendredirect () 方法在 HttPServletResponse 中聲明,用于將客戶端請(qǐng)求重定向到不同服務(wù)器或上下文中可用的不同 URL。 通過重定向,您可以將瀏覽器重定向到完全不同的應(yīng)用程序。



客戶端是否參與轉(zhuǎn)發(fā)(Forward)和重定向(Redirect)

這兩種方法之間的一個(gè)關(guān)鍵區(qū)別是 web 容器在 Forward() 情況中處理了所有的內(nèi)部進(jìn)程,而且 URL 在客戶端的瀏覽器中不會(huì)改變,因此客戶端/瀏覽器不會(huì)參與其中,從而使它們完全不知道動(dòng)作已經(jīng)發(fā)生。



而在 Sendredirect () 的情況中,該方法設(shè)置適合的頭部信息和正文內(nèi)容以將請(qǐng)求重定向到不同的 URL 中,瀏覽器付負(fù)責(zé)將新的請(qǐng)求發(fā)送到客戶端可見的 URL。



執(zhí)行控制

當(dāng)在請(qǐng)求時(shí)執(zhí)行 Forward() 方法,當(dāng)前的請(qǐng)求會(huì)被轉(zhuǎn)發(fā)到另一個(gè) JSP 頁面,對(duì)當(dāng)前 JSP 的處理也會(huì)被終止。請(qǐng)求可能會(huì)被轉(zhuǎn)發(fā)到另一個(gè)用 Java 編程語言編寫的 servlet,或者一個(gè)靜態(tài)的 HTML 頁面。



一個(gè) SendRedirect() 請(qǐng)求只是簡(jiǎn)單告知瀏覽器轉(zhuǎn)到另一個(gè) URL,將執(zhí)行控制發(fā)送到 web 應(yīng)用程序之外。它使用一個(gè)兩步的過程來指示瀏覽器的 URL 發(fā)出另一個(gè)將控制轉(zhuǎn)發(fā)到另一個(gè)客戶端的請(qǐng)求。



速度

Forward () 在服務(wù)器內(nèi)運(yùn)行,執(zhí)行速度比 SendRedirect () 快。



重定向必須通過瀏覽器,然后等待瀏覽器發(fā)出新的 HTTP 請(qǐng)求。 一個(gè)重定向使得服務(wù)器發(fā)送 HTTP 響應(yīng)狀態(tài)代碼 302 和一個(gè)包含新的 URL 的位置頭到瀏覽器,并且在瀏覽器收到狀態(tài)代碼 302 之后,它對(duì)位置頭中的 URL 發(fā)出一個(gè)新的請(qǐng)求。 這需要與客戶機(jī)進(jìn)行往返通信,這使得它比 Forward () 相對(duì)慢一些。



轉(zhuǎn)發(fā)(Forward)和重定向(Redirect)比較圖表

轉(zhuǎn)發(fā)(Forward) 重定向(Redirect)

用于將請(qǐng)求從一個(gè) JSP 轉(zhuǎn)發(fā)到另一個(gè) JSP,或從一個(gè) JSP 轉(zhuǎn)發(fā)到另一個(gè) servlet,或從一個(gè) JSP 轉(zhuǎn)發(fā)到 web 應(yīng)用程序的另一個(gè)資源。 用于將客戶端請(qǐng)求重定向到不同服務(wù)器或上下文中可用的不同 URL。

Forward( )方法在 RequestDispatcher 中聲明。 Sendredirect () 方法在 HttPServletResponse 中聲明

不涉及客戶端/瀏覽器,web 容器在內(nèi)部處理該過程。 當(dāng)客戶端將 URL 作為一個(gè)新的請(qǐng)求后,控制權(quán)將會(huì)轉(zhuǎn)移至客戶端或?yàn)g覽器。

當(dāng)一個(gè)組件執(zhí)行業(yè)務(wù)邏輯并與另一個(gè)組件共享結(jié)果時(shí),它最有效。 當(dāng)客戶端應(yīng)從一個(gè)頁面重定向到另一頁面時(shí),此方法效果最佳。

它在服務(wù)器內(nèi)運(yùn)行,并且比重定向執(zhí)行得更快。 它比轉(zhuǎn)發(fā)慢,因?yàn)樗枰c客戶端進(jìn)行往返通信。

使用時(shí),原來的 URL 請(qǐng)求不變。 原始的 URL 請(qǐng)求會(huì)改變。

兩種資源都必須屬于同一上下文。 將請(qǐng)求重定向到不屬于當(dāng)前上下文的其它 URL。

轉(zhuǎn)發(fā)(Forward)和重定向(Redirect)總結(jié)

學(xué)習(xí)轉(zhuǎn)發(fā)方法和重定向方法之間的區(qū)別是 Java 開發(fā)人員最重要的部分之一。 雖然控制器可以在處理請(qǐng)求結(jié)束時(shí)執(zhí)行轉(zhuǎn)發(fā)(Forward)或重定向(Redirect)方法,但它們有自己的一組用途。



大多數(shù)情況下,您會(huì)使用 Forward () 方法,因?yàn)樗?SendRedirect () 稍微快一點(diǎn),而后者實(shí)際上需要與客戶機(jī)進(jìn)行往返通信,使其比 Forward() 更慢。 通過重定向,你可以將瀏覽器導(dǎo)向到另一個(gè)應(yīng)用程序。 這是轉(zhuǎn)發(fā)無法做到的。



簡(jiǎn)而言之,當(dāng)一個(gè)組件必須執(zhí)行業(yè)務(wù)邏輯并與另一個(gè)組件共享結(jié)果時(shí),轉(zhuǎn)發(fā)(Forward)工作效果最好,而當(dāng)客戶端應(yīng)該從一個(gè)頁面重定向到另一個(gè)頁面時(shí),重定向(Redirect)工作效果最好。



以上內(nèi)容翻譯自:

Difference Between Forward and Redirect。

能力有限,還望斧正。

藍(lán)藍(lán)設(shè)計(jì)m.gerard.com.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì)  cs界面設(shè)計(jì)  ipad界面設(shè)計(jì)  包裝設(shè)計(jì)  圖標(biāo)定制  用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

日歷

鏈接

個(gè)人資料

存檔

主站蜘蛛池模板: 丰满少妇被猛烈进出69影院 | 国产精品免费一区二区三区四区 | 摸老师丝袜小内内摸出水 | 十分钟免费观看大全视频 | 国产高清视频在线观看不卡v | 动漫美女性侵 | 免费观看激烈日板子 | 国产一在线精品一区在线观看 | 一本色道久久综合亚洲精品蜜桃冫 | 91av欧美| 国自精品三七区 | 久草在线草a免费线看 | 打卡中国各地奋斗第一线 | 伊人久久丁香色婷婷啪啪 | 无套日出白浆在线播放 | 成人影院午夜久久影院 | 国产精品久久久久久久人热 | 国产精品AV无码免费播放 | 美国CERANETWORK超清 | 西西人体大胆牲交PP6777 | 邪恶肉肉全彩色无遮琉璃神社 | 亚洲一日韩欧美中文字幕在线 | 俄罗斯极品hd| 免费人成视频X8X8国产更快乐 | 免费精品一区二区三区在线观看 | 秋霞伦理电影在2017韩国在线伦 | 我半夜摸妺妺的奶C了她 | 扒开她的黑森林让我添动态图 | ppypp日本欧美一区二区 | 在线观看插女生免费版 | 无码人妻丰满熟妇区五十路久久 | 国产看午夜精品理论片 | 伊人久久综合网站 | 亚洲人美女肛交真人全程 | 暖暖视频中国在线观看免费韩国 | 丰满五十六十老熟女HD60 | 国模啪啪久久久久久久 | 亚洲高清免费在线观看 | 午夜国产福利 | 亚洲三级在线观看 | 狠日狠干日曰射 |