頁面的跳轉:請求轉發(fā)和重定向

一划乖、重定向和請求轉發(fā)的概念

以C/S模式為例:

請求轉發(fā):

request.getRequestDispatcher(URL).forward(request, response)艺配;

1.客戶端發(fā)送請求數(shù)據(jù)給服務器

2.服務器接收請求數(shù)據(jù)并調(diào)用第一個servlet處理邏輯

3.第一個servlet處理數(shù)據(jù)結束后將數(shù)據(jù)傳遞給下一個servlet

4.第二個servlet處理完數(shù)據(jù)后調(diào)用forward()方法將處理結果返回給客戶端。

請求轉發(fā)的特點:客戶端發(fā)送一次請求,請求數(shù)據(jù)流轉多個servlet(一次請求现斋,多個servlet聯(lián)動)吟孙,地址欄中只會出現(xiàn)第一次跳轉的地址。

請求轉發(fā)從發(fā)送請求中就已經(jīng)準備好進行數(shù)據(jù)流轉了即流轉數(shù)據(jù)存在于HTTP請求報頭中芥永。

重定向:

response.sendRedirect(URL)篡殷;

1.客戶端發(fā)送請求數(shù)據(jù)給服務器

2.服務器接收請求數(shù)據(jù)并調(diào)用servlet處理邏輯

3.服務器調(diào)用sendRedirect()方法將處理結果放進HTTP響應報頭中返回給客戶端

4.客戶端收到響應結果后再次發(fā)送請求數(shù)據(jù)給服務器,重復上述過程埋涧。

重定向的特點:客戶端會多次發(fā)送請求給服務器板辽。

重定向在向客戶端返回處理結果時才決定讓客戶端再一次發(fā)送一次請求。

二棘催、請求轉發(fā)和重定向的區(qū)別

共同點:兩種方式都可以實現(xiàn)瀏覽器頁面的跳轉

不同點:

1劲弦、數(shù)據(jù)共享問題

請求轉發(fā)的數(shù)據(jù)處理是在一次請求中,使用request對象可以實現(xiàn)數(shù)據(jù)共享醇坝。

重定向是兩次向客戶端發(fā)送請求邑跪,想要讓兩次請求數(shù)據(jù)共享必須使用session對象。

2、效率問題

請求轉發(fā)的效率高于重定向画畅。這是因為請求轉發(fā)是在服務器中跳轉頁面砸琅,而重定向需要重新再發(fā)送請求給服務器調(diào)用新的servlet來完成跳轉頁面。

3夜赵、頁面跳轉意圖所在之處問題

兩者都是在servlet處理數(shù)據(jù)結束后開始跳轉頁面的明棍。請求轉發(fā)和重定向兩者的根本區(qū)別是由于RequestDispatcher().forward()方法和sendRedirect()方法的不同導致的,前者屬于HttpServletRequest的方法寇僧,屬于請求中的方法摊腋;后者屬于HttpServletResponse的方法,屬于響應的方法嘁傀,所以請求轉發(fā)在發(fā)送請求時就要求聯(lián)動servlet兴蒸,而重定向是在準備返回處理結果時要求再一次重發(fā)請求。

三细办、請求轉發(fā)和重定向的使用時機

首先要明確橙凳,請求轉發(fā)在每次刷新時會重新向服務器發(fā)送請求,每刷新一次笑撞,就重新發(fā)送一次請求岛啸。

1、對于表單數(shù)據(jù)茴肥,在表單數(shù)據(jù)需要修改時往往不能重復提交坚踩,此時需要重定向(刷新會導致數(shù)據(jù)源提交出現(xiàn)問題)。

2瓤狐、判斷請求數(shù)據(jù)能否在一次請求中被處理或者判斷請求數(shù)據(jù)要放到request對象中還是session中瞬铸,根據(jù)數(shù)據(jù)的生存期來判斷以何種方式進行頁面跳轉。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末础锐,一起剝皮案震驚了整個濱河市嗓节,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌皆警,老刑警劉巖拦宣,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異信姓,居然都是意外死亡恢着,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門财破,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掰派,“玉大人,你說我怎么就攤上這事左痢∶蚁郏” “怎么了系洛?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長略步。 經(jīng)常有香客問我描扯,道長,這世上最難降的妖魔是什么趟薄? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任绽诚,我火速辦了婚禮,結果婚禮上杭煎,老公的妹妹穿的比我還像新娘恩够。我一直安慰自己,他們只是感情好羡铲,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布蜂桶。 她就那樣靜靜地躺著,像睡著了一般也切。 火紅的嫁衣襯著肌膚如雪扑媚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天雷恃,我揣著相機與錄音疆股,去河邊找鬼。 笑死倒槐,一個胖子當著我的面吹牛押桃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播导犹,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼羡忘!你這毒婦竟也來了谎痢?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卷雕,失蹤者是張志新(化名)和其女友劉穎节猿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漫雕,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡滨嘱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了浸间。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片太雨。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖魁蒜,靈堂內(nèi)的尸體忽然破棺而出囊扳,到底是詐尸還是另有隱情吩翻,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布锥咸,位于F島的核電站狭瞎,受9級特大地震影響,放射性物質發(fā)生泄漏搏予。R本人自食惡果不足惜熊锭,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雪侥。 院中可真熱鬧碗殷,春花似錦、人聲如沸校镐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸟廓。三九已至从祝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間引谜,已是汗流浹背牍陌。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留员咽,地道東北人毒涧。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像贝室,于是被迫代替她去往敵國和親契讲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

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