午夜精品福利视频,亚洲激情专区,免费看a网站,aa毛片,亚洲色图激情小说,亚洲一级毛片,免费一级毛片一级毛片aa

forward和redirect的區(qū)別

時(shí)間:2024-07-29 02:28:03 學(xué)人智庫(kù) 我要投稿
  • 相關(guān)推薦

forward和redirect的區(qū)別

Forward和Redirect代表了兩種請(qǐng)求轉(zhuǎn)發(fā)方式:直接轉(zhuǎn)發(fā)和間接轉(zhuǎn)發(fā)。對(duì)應(yīng)到代碼里,分別是RequestDispatcher類的forward()方法和HttpServletRequest類的sendRedirect()方法。本文是大學(xué)網(wǎng)unjs.com小編精心收集的forward和redirect相關(guān)內(nèi)容,僅供參考!

redirect - 中文名:重定向

structs進(jìn)行葉面跳轉(zhuǎn)的方法有兩個(gè),forward和redirect(其實(shí)不單是structs,幾乎所有的web開(kāi)發(fā)都是)

forward簡(jiǎn)單來(lái)說(shuō)就是在服務(wù)器端完成葉面跳轉(zhuǎn),服務(wù)端從A頁(yè)forward到B頁(yè),對(duì)于客戶端來(lái)說(shuō)一直都在訪問(wèn)A頁(yè),不知道有個(gè)B頁(yè)存在(所以structs幾乎把所有的jsp文件藏起來(lái),客戶端地址欄看不到j(luò)sp,就是因?yàn)閟tructs的大部分jsp頁(yè)都是在Action里面通過(guò)forward跳轉(zhuǎn))。

redirect就容易理解的多了,從A頁(yè)forward到B頁(yè),服務(wù)端告訴客戶端,你要從A跳到B,由客戶端發(fā)出指揮,所以客戶端地址欄看到從A頁(yè)變成B頁(yè)了。

forward和redirect的區(qū)別

【出現(xiàn)頻率】 經(jīng)常出現(xiàn) 五顆星

【關(guān)鍵考點(diǎn)】

請(qǐng)求轉(zhuǎn)發(fā)的含義;

Forward轉(zhuǎn)發(fā)請(qǐng)求的原理;

Redirect轉(zhuǎn)發(fā)請(qǐng)求的原理。

【考題分析】

Forward和Redirect代表了兩種請(qǐng)求轉(zhuǎn)發(fā)方式:直接轉(zhuǎn)發(fā)和間接轉(zhuǎn)發(fā)。

直接轉(zhuǎn)發(fā)方式(Forward),客戶端和瀏覽器只發(fā)出一次請(qǐng)求,Servlet、HTML、JSP或其它信息資源,由第二個(gè)信息資源響應(yīng)該請(qǐng)求,在請(qǐng)求對(duì)象request中,保存的對(duì)象對(duì)于每個(gè)信息資源是共享的。

間接轉(zhuǎn)發(fā)方式(Redirect)實(shí)際是兩次HTTP請(qǐng)求,服務(wù)器端在響應(yīng)第一次請(qǐng)求的時(shí)候,讓瀏覽器再向另外一個(gè)URL發(fā)出請(qǐng)求,從而達(dá)到轉(zhuǎn)發(fā)的目的。

舉個(gè)通俗的例子:

直接轉(zhuǎn)發(fā)就相當(dāng)于:“張三找李四借錢(qián),李四說(shuō)沒(méi)有,李四去找王五借,借到借不到都會(huì)把消息傳遞給張三”;

間接轉(zhuǎn)發(fā)就相當(dāng)于:"張三找李四借錢(qián),李四說(shuō)沒(méi)有,讓張三去找王五借"。

下面詳細(xì)闡述一下兩者的原理:

一、間接請(qǐng)求轉(zhuǎn)發(fā)(Redirect)

間接轉(zhuǎn)發(fā)方式,有時(shí)也叫重定向,它一般用于避免用戶的非正常訪問(wèn)。例如:用戶在沒(méi)有登錄的情況下訪問(wèn)后臺(tái)資源,Servlet可以將該HTTP請(qǐng)求重定向到登錄頁(yè)面,讓用戶登錄以后再訪問(wèn)。在Servlet中,通過(guò)調(diào)用response對(duì)象的SendRedirect()方法,告訴瀏覽器重定向訪問(wèn)指定的URL,示例代碼如下:

上圖所示的間接轉(zhuǎn)發(fā)請(qǐng)求的過(guò)程如下:

1、瀏覽器向Servlet1發(fā)出訪問(wèn)請(qǐng)求;

2、Servlet1調(diào)用sendRedirect()方法,將瀏覽器重定向到Servlet2;

3、瀏覽器向servlet2發(fā)出請(qǐng)求;

4、最終由Servlet2做出響應(yīng)。

二、直接請(qǐng)求轉(zhuǎn)發(fā)(Forword)

直接轉(zhuǎn)發(fā)方式用的更多一些,一般說(shuō)的請(qǐng)求轉(zhuǎn)發(fā)指的就是直接轉(zhuǎn)發(fā)方式。Web應(yīng)用程序大多會(huì)有一個(gè)控制器。由控制器來(lái)控制請(qǐng)求應(yīng)該轉(zhuǎn)發(fā)給那個(gè)信息資源。然后由這些信息資源處理請(qǐng)求,處理完以后還可能轉(zhuǎn)發(fā)給另外的'信息資源來(lái)返回給用戶,這個(gè)過(guò)程就是經(jīng)典的MVC模式。

javax.serlvet.RequestDispatcher接口是請(qǐng)求轉(zhuǎn)發(fā)器必須實(shí)現(xiàn)的接口,由Web容器為Servlet提供實(shí)現(xiàn)該接口的對(duì)象,通過(guò)調(diào)用該接口的forward()方法到達(dá)請(qǐng)求轉(zhuǎn)發(fā)的目的,示例代碼如下:

上圖所示的直接轉(zhuǎn)發(fā)請(qǐng)求的過(guò)程如下:

1、瀏覽器向Servlet1發(fā)出訪問(wèn)請(qǐng)求;

2、Servlet1調(diào)用forward()方法,在服務(wù)器端將請(qǐng)求轉(zhuǎn)發(fā)給Servlet2;

3、最終由Servlet2做出響應(yīng)。

技巧:其實(shí),通過(guò)瀏覽器就可以觀察到服務(wù)器端使用了那種請(qǐng)求轉(zhuǎn)發(fā)方式,當(dāng)單擊某一個(gè)超鏈接時(shí),瀏覽器的地址欄會(huì)出現(xiàn)當(dāng)前請(qǐng)求的地址,如果服務(wù)器端響應(yīng)完成以后,發(fā)現(xiàn)地址欄的地址變了,則證明是間接的請(qǐng)求轉(zhuǎn)發(fā)。相反,如果地址沒(méi)有發(fā)生變化,則代表的是直接請(qǐng)求轉(zhuǎn)發(fā)或者沒(méi)有轉(zhuǎn)發(fā)。

問(wèn):直接轉(zhuǎn)發(fā)和間接轉(zhuǎn)發(fā)的原理及區(qū)別是什么?

答:Forward和Redirect代表了兩種請(qǐng)求轉(zhuǎn)發(fā)方式:直接轉(zhuǎn)發(fā)和間接轉(zhuǎn)發(fā)。對(duì)應(yīng)到代碼里,分別是RequestDispatcher類的forward()方法和HttpServletRequest類的sendRedirect()方法。

對(duì)于間接方式,服務(wù)器端在響應(yīng)第一次請(qǐng)求的時(shí)候,讓瀏覽器再向另外一個(gè)URL發(fā)出請(qǐng)求,從而達(dá)到轉(zhuǎn)發(fā)的目的。它本質(zhì)上是兩次HTTP請(qǐng)求,對(duì)應(yīng)兩個(gè)request對(duì)象。

對(duì)于直接方式,客戶端瀏覽器只發(fā)出一次請(qǐng)求,Servlet把請(qǐng)求轉(zhuǎn)發(fā)給Servlet、HTML、JSP或其它信息資源,由第2個(gè)信息資源響應(yīng)該請(qǐng)求,兩個(gè)信息資源共享同一個(gè)request對(duì)象。

[forward和redirect的區(qū)別]相關(guān)文章:

1.JavaWeb筆試題黑馬程序員

2.javaee面試題專家總結(jié)

3.張孝祥java面試題4

4.java程序員面試之葵花寶典

【forward和redirect的區(qū)別】相關(guān)文章:

whether和if的區(qū)別11-17

環(huán)比和同比的區(qū)別08-19

精油和香水的區(qū)別08-31

香精和香水的區(qū)別09-13

唇膏和唇彩的區(qū)別07-28

投資和理財(cái)?shù)膮^(qū)別?10-24

創(chuàng)業(yè)和打工的區(qū)別?06-28

白醋和醋精的區(qū)別06-23

月季和玫瑰的區(qū)別07-14

律詩(shī)和絕句的區(qū)別09-05