重定向和轉(zhuǎn)發(fā)的小知識(shí)點(diǎn)

1.兩者區(qū)別

重定向是在客戶端發(fā)生的铭段,URL地址欄變化惯裕,可以定向到任何服務(wù)器的資源;
轉(zhuǎn)發(fā)是發(fā)生在服務(wù)器內(nèi)部的撞牢,瀏覽器地址欄不變化率碾,只能轉(zhuǎn)發(fā)本服務(wù)器的資源。

2.使用方法

重定向使用:response.sendRedirect(url);
轉(zhuǎn)發(fā)時(shí)使用:request.getRequestDispatcher(url).forward(request,response);

3.禁用Cookie時(shí)屋彪,如何使用Session

session雖然是服務(wù)器端的所宰,但是在瀏覽器再次訪問(wèn)其他servlet時(shí),服務(wù)器如何知道是否為同一客戶端撼班?其實(shí)歧匈,在瀏覽器訪問(wèn)session資源后,服務(wù)器會(huì)發(fā)送一個(gè)set-cookie響應(yīng)砰嘁,此cookie不是存在本地的,存在瀏覽器內(nèi)部勘究,所以說(shuō)session是基于cookie的矮湘。但是當(dāng)瀏覽器禁用所有cookie時(shí),cookie存不進(jìn)去口糕,服務(wù)器如何分辨客戶機(jī)呢缅阳?
使用URL重寫(xiě),即將session產(chǎn)生的id設(shè)置在URL上,瀏覽器每次訪問(wèn)十办,都帶著此后綴秀撇,所以無(wú)論是否禁用cookie,都能訪問(wèn)同一session資源向族,方法如下:

重定向URL使用

String url = response.encodeRedirectURL(url);
response.sendRedirect(url);

非重定向URL使用

String url = response.encodeURL(url);
response.getRequestDispatcher(url).forward();
表單action和超鏈接也同樣適用

4.其他區(qū)別

a. RequestDispatcher.forward方法只能將請(qǐng)求轉(zhuǎn)發(fā)給同一個(gè)WEB應(yīng)用中的組件呵燕;而HttpServletResponse.sendRedirect 方法還可以重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對(duì)URL重定向到其他站點(diǎn)的資源件相。
b. 如果傳遞給HttpServletResponse.sendRedirect 方法的相對(duì)URL以“/”開(kāi)頭再扭,它是相對(duì)于整個(gè)WEB站點(diǎn)的根目錄;如果創(chuàng)建RequestDispatcher對(duì)象時(shí)指定的相對(duì)URL以“/”開(kāi)頭夜矗,它是相對(duì)于當(dāng)前WEB應(yīng)用程序的根目錄泛范。
c. 調(diào)用HttpServletResponse.sendRedirect方法重定向的訪問(wèn)過(guò)程結(jié)束后,瀏覽器地址欄中顯示的URL會(huì)發(fā)生改變紊撕,由初始的URL地址變成重定向的目標(biāo)URL罢荡;調(diào)用RequestDispatcher.forward 方法的請(qǐng)求轉(zhuǎn)發(fā)過(guò)程結(jié)束后,瀏覽器地址欄保持初始的URL地址不變对扶。
d. HttpServletResponse.sendRedirect方法對(duì)瀏覽器的請(qǐng)求直接作出響應(yīng)区赵,響應(yīng)的結(jié)果就是告訴瀏覽器去重新發(fā)出對(duì)另外一個(gè)URL的訪問(wèn)請(qǐng)求;RequestDispatcher.forward方法在服務(wù)器端內(nèi)部將請(qǐng)求轉(zhuǎn)發(fā)給另外一個(gè)資源辩稽,瀏覽器只知道發(fā)出了請(qǐng)求并得到了響應(yīng)結(jié)果惧笛,并不知道在服務(wù)器程序內(nèi)部發(fā)生了轉(zhuǎn)發(fā)行為。
e. RequestDispatcher.forward方法的調(diào)用者與被調(diào)用者之間共享相同的request對(duì)象和response對(duì)象逞泄,它們屬于同一個(gè)訪問(wèn)請(qǐng)求和響應(yīng)過(guò)程患整;而HttpServletResponse.sendRedirect方法調(diào)用者與被調(diào)用者使用各自的request對(duì)象和response對(duì)象,它們屬于兩個(gè)獨(dú)立的訪問(wèn)請(qǐng)求和響應(yīng)過(guò)程喷众。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末各谚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子到千,更是在濱河造成了極大的恐慌昌渤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憔四,死亡現(xiàn)場(chǎng)離奇詭異膀息,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)了赵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)潜支,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人柿汛,你說(shuō)我怎么就攤上這事冗酿。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵裁替,是天一觀的道長(zhǎng)项玛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)弱判,這世上最難降的妖魔是什么襟沮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮裕循,結(jié)果婚禮上臣嚣,老公的妹妹穿的比我還像新娘。我一直安慰自己剥哑,他們只是感情好硅则,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著株婴,像睡著了一般怎虫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上困介,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天大审,我揣著相機(jī)與錄音,去河邊找鬼座哩。 笑死徒扶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的根穷。 我是一名探鬼主播姜骡,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼屿良!你這毒婦竟也來(lái)了圈澈?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤尘惧,失蹤者是張志新(化名)和其女友劉穎康栈,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體喷橙,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡啥么,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贰逾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饥臂。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖似踱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤核芽,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布囚戚,位于F島的核電站,受9級(jí)特大地震影響轧简,放射性物質(zhì)發(fā)生泄漏驰坊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一哮独、第九天 我趴在偏房一處隱蔽的房頂上張望拳芙。 院中可真熱鬧,春花似錦皮璧、人聲如沸舟扎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)睹限。三九已至,卻和暖如春讯檐,著一層夾襖步出監(jiān)牢的瞬間羡疗,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工别洪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叨恨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓挖垛,卻偏偏與公主長(zhǎng)得像痒钝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晕换,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載:http://www.cnblogs.com/shenliang123/archive/2011/10/27...
    Kitlen閱讀 551評(píng)論 0 1
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題午乓。 96、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,412評(píng)論 0 10
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理闸准,服務(wù)發(fā)現(xiàn)益愈,斷路器,智...
    卡卡羅2017閱讀 134,714評(píng)論 18 139
  • 等W小姐忙完,從一堆材料中探出頭來(lái)库快,慵懶的伸了個(gè)腰摸袁,才驚覺(jué)天早已經(jīng)黑透了。彼時(shí)她才想起L先森應(yīng)該早已經(jīng)抵達(dá)义屏,拿起手...
    啦啦小巫閱讀 513評(píng)論 6 3
  • 酒肉推一推 少幾分滋味 朋友很少回 聯(lián)系總是累 公園里一個(gè)人走 來(lái)來(lái)回回 小孩追著風(fēng)箏飛 咧開(kāi)了嘴 風(fēng)從樹(shù)隙里溜出...
    郝家長(zhǎng)閱讀 548評(píng)論 3 8