六月伊人,国产精品制服丝袜欧美,亚洲va在线∨a天堂va欧美va,精品亚洲一区二区三区在线观看国产老熟女色视频,国产熟女九色,国产又粗又大,久久人人网国产精品

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

2019-9-8    seo達人

簡單介紹

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



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



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



什么是轉發(fā)(Forward)

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



什么是重定向(Redirect)

此方法也用于轉發(fā) HTTP 請求,但與轉發(fā)( Forward )不同的是:它是一個兩步過程,其中重定向發(fā)生在客戶端到不同的應用程序。Redirect 方法將用戶重定向到新的 URL??蛻舳说臑g覽器會自動對來自服務器中的重定向表頭中指定的 URL 發(fā)出新的請求。它需要與客戶機進行往返通訊,因此相對來說會比轉發(fā)( Forward )方法慢些。



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

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

Forward() 方法用于將請求從一個 JSP 轉發(fā)到另一個 JSP,或從一個 JSP 轉發(fā)到另一個 servlet,或從一個 JSP 轉發(fā)到 web 應用程序的另一個資源??刂剖窃谌萜鞯膬炔總鬟f的,瀏覽器/客戶機不參與此過程。Forward( )方法在 RequestDispatcher 中聲明。



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



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

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



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



執(zhí)行控制

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



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



速度

Forward () 在服務器內運行,執(zhí)行速度比 SendRedirect () 快。



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



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

轉發(fā)(Forward) 重定向(Redirect)

用于將請求從一個 JSP 轉發(fā)到另一個 JSP,或從一個 JSP 轉發(fā)到另一個 servlet,或從一個 JSP 轉發(fā)到 web 應用程序的另一個資源。 用于將客戶端請求重定向到不同服務器或上下文中可用的不同 URL。

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

不涉及客戶端/瀏覽器,web 容器在內部處理該過程。 當客戶端將 URL 作為一個新的請求后,控制權將會轉移至客戶端或瀏覽器。

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

它在服務器內運行,并且比重定向執(zhí)行得更快。 它比轉發(fā)慢,因為它需要與客戶端進行往返通信。

使用時,原來的 URL 請求不變。 原始的 URL 請求會改變。

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

轉發(fā)(Forward)和重定向(Redirect)總結

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



大多數(shù)情況下,您會使用 Forward () 方法,因為它比 SendRedirect () 稍微快一點,而后者實際上需要與客戶機進行往返通信,使其比 Forward() 更慢。 通過重定向,你可以將瀏覽器導向到另一個應用程序。 這是轉發(fā)無法做到的。



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



以上內容翻譯自:

Difference Between Forward and Redirect。

能力有限,還望斧正。

藍藍設計www.wnxcall.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業(yè)提供卓越的UI界面設計、BS界面設計  cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制  用戶體驗 、交互設計、 網(wǎng)站建設 、平面設計服務

分享本文至:

日歷

鏈接

個人資料

藍藍設計的小編 http://www.wnxcall.com

存檔