113.redirect與forward區(qū)別

參考http://www.cnblogs.com/wxgblogs/p/5602849.html

forward和redirect的區(qū)別

forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response);

redirect方式:response.sendRedirect("/somePage.jsp");

forward是服務(wù)器內(nèi)部重定向,程序收到請求后重新定向到另一個(gè)程序勉耀,客戶機(jī)并不知道耍共;redirect則是服務(wù)器收到請求后發(fā)送一個(gè)狀態(tài)頭給客戶,客戶將再請求一次漠另,這里多了兩次網(wǎng)絡(luò)通信的來往。當(dāng)然forward也有缺點(diǎn),就是forward的頁面的路徑如果是相對路徑就會有些問題了岩灭。forward會將request state ,bean等等信息帶往下一個(gè)jsp。redirect是送到client端后再一次request,所以資料不被保留.使用forward你就可以用getAttribute()來取的前一個(gè)jsp所放入的bean等等資料赂鲤。

在網(wǎng)上看到一些帖子噪径,總結(jié)了一些區(qū)別柱恤,可以從以下幾個(gè)方面來看:

1.從地址欄顯示來說

forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器.瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址.

redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請求那個(gè)地址.所以地址欄顯示的是新的URL.所以redirect等于客戶端向服務(wù)器端發(fā)出兩次request,同時(shí)也接受兩次response找爱。

2.從數(shù)據(jù)共享來說

forward:轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù).

redirect:不能共享數(shù)據(jù).

redirect不僅可以重定向到當(dāng)前應(yīng)用程序的其他資源,還可以重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對URL重定向到其他站點(diǎn)的資源.forward,方法只能在同一個(gè)Web應(yīng)用程序內(nèi)的資源之間轉(zhuǎn)發(fā)請求.forward 是服務(wù)器內(nèi)部的一種操作.redirect 是服務(wù)器通知客戶端,讓客戶端重新發(fā)起請求.所以,你可以說 redirect是一種間接的請求, 但是你不能說"一個(gè)請求是屬于forward還是redirect "

3.從運(yùn)用地方來說

forward:一般用于用戶登陸的時(shí)候,根據(jù)角色轉(zhuǎn)發(fā)到相應(yīng)的模塊.

redirect:一般用于用戶注銷登陸時(shí)返回主頁面和跳轉(zhuǎn)到其它的網(wǎng)站等.

4.從效率來說

forward:高.

redirect:低.

5.jsp 語法

View Code

或者這樣寫:

View Code

6.例子

View Code

描述

標(biāo)簽從一個(gè)jsp文件向另一個(gè)文件傳遞一個(gè)包含用戶請求的request對象.標(biāo)簽以下的代碼梗顺,將不能執(zhí)行.你能夠向目標(biāo)文件傳送參數(shù)和值,在這個(gè)例子中我們傳遞的參數(shù)名為username,值為scott,如果你使用了標(biāo)簽的話车摄,目標(biāo)文件必須是一個(gè)動態(tài)的文件寺谤,能夠處理參數(shù).如果你使用了非緩沖輸出的話,那么使用時(shí)就要小心吮播。如果在你使用之前变屁,jsp文件已經(jīng)有了數(shù)據(jù),那么文件執(zhí)行就會出錯(cuò).

屬性

View Code

這里是一個(gè)表達(dá)式或是一個(gè)字符串用于說明你將要定向的文件或url.這個(gè)文件可以是jsp,程序段意狠,或者其它能夠處理request對象的文件(如asp,cgi,php).

View Code

向一個(gè)動態(tài)文件發(fā)送一個(gè)或多個(gè)參數(shù)粟关,這個(gè)文件一定是動態(tài)文件.如果你想傳遞多個(gè)參數(shù),你可以在一個(gè)jsp文件中使用多個(gè)环戈。name指定參數(shù)名闷板,value指定參數(shù)值.

例子

View Code

forwardTo.jsp

View Code

redirect的例子:

譬如:client 通過XXX\index.jsp?name=gauss&pwd=123訪問index.jsp,而index.jsp中有< jsp:forward page="login.jsp"/>,則在login.jsp中可以通過request.getParameter()得到name和pwd, 而<%response.sendRedirect("login.jsp");%>得不到院塞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遮晚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拦止,更是在濱河造成了極大的恐慌县遣,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件创泄,死亡現(xiàn)場離奇詭異艺玲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鞠抑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門饭聚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搁拙,你說我怎么就攤上這事秒梳。” “怎么了箕速?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵酪碘,是天一觀的道長。 經(jīng)常有香客問我盐茎,道長兴垦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮探越,結(jié)果婚禮上狡赐,老公的妹妹穿的比我還像新娘。我一直安慰自己钦幔,他們只是感情好枕屉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鲤氢,像睡著了一般搀擂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卷玉,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天哨颂,我揣著相機(jī)與錄音,去河邊找鬼揍庄。 笑死咆蒿,一個(gè)胖子當(dāng)著我的面吹牛东抹,可吹牛的內(nèi)容都是我干的蚂子。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缭黔,長吁一口氣:“原來是場噩夢啊……” “哼食茎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起馏谨,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤别渔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后惧互,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哎媚,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年喊儡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拨与。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡艾猜,死狀恐怖买喧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情匆赃,我是刑警寧澤淤毛,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站算柳,受9級特大地震影響低淡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一蔗蹋、第九天 我趴在偏房一處隱蔽的房頂上張望事期。 院中可真熱鬧,春花似錦纸颜、人聲如沸兽泣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唠倦。三九已至,卻和暖如春涮较,著一層夾襖步出監(jiān)牢的瞬間稠鼻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工狂票, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留候齿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓闺属,卻偏偏與公主長得像慌盯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子掂器,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法亚皂,類相關(guān)的語法,內(nèi)部類的語法国瓮,繼承相關(guān)的語法灭必,異常的語法,線程的語...
    子非魚_t_閱讀 31,632評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理乃摹,服務(wù)發(fā)現(xiàn)禁漓,斷路器,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 1 說出Servlet的生命周期孵睬,并說出Servlet和CGI的區(qū)別 Servlet被服務(wù)器實(shí)例化后播歼,容器運(yùn)行其i...
    七寸知架構(gòu)閱讀 1,136評論 0 51
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評論 0 11
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96肪康、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,405評論 0 10