亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

getRequestDispatcher 和sendRedirect到底有什么區別

getRequestDispatcher 和sendRedirect到底有什么區別

請叫我百度 2015-11-25 22:10:49
sendRedirect重定向之后能不能收到 requset.getParameter(“值”)里面的值??請求轉發能不能收到?requset.getParameter(“值”)里面的值?? ? 請求重定向不帶任何參數?(除了地址欄里用"?"傳參)請求轉發呢,request和session的值都能在另一頁面獲取么????
查看完整描述

5 回答

已采納
?
sxian_wang

TA貢獻16條經驗 獲得超8個贊

回來填坑。先說答案:前一題選D,后一題選A。我們來看下getRequestDispatche()和sendRedirect():
?????? getRequestDispatcher()前面是什么?request!既然是request,它必然是屬于服務器端的邏輯。而在這里,getRequestDispatcher()的作用就是轉發請求。完整的來講,一個請求包括request和response這兩個參數,所以在getRequestDispatcher()后面接了一個forward(resquest,response);把這個請求轉發到了另個頁面。這里,一定要明白轉發這兩個字:對原有的對象不進行修改,從A拿到B,這叫轉發,它是一個服務器的內部行為。所以在a.jsp收到轉發的request后,該requset還是有key為name的這個對象。你用getParameter("name")自然能夠獲取到value,也就是sase;

?????? 再來看看sendRedircet()。類似的,sendRedirect()前面是response對象。什么是response?你可以簡單的理解為是服務器想告訴客戶端(在這里是瀏覽器)的一系列信息。那么,sendRedirect()這個動作服務器想告訴客戶端什么信息呢?重定向!那什么是重定向又是什么呢?你可以理解為瀏覽器根據服務器的響應信息重新向某個URL發起一次新的請求,而這個URL也是服務器告訴瀏覽器的,在這里就是sendRedirect()中的參數。也就是說,重定向是一個客戶端行為,對應的URL地址欄會發生變化。這和你自己在地址欄輸入這個URL再回車,并沒有什么卵的區別。

?????? 明白了重定向的概念,我們回到你的題目上:重定向是客戶端行為,重新向某個URL發起請求,該請求的request和response信息都是新的,和上一次請求的request、response沒有一毛錢的關系。所以,重定向以后,在a.jsp頁面里面你收到request和response都是很干凈的,啥都沒攜帶,自認也沒有name這個參數,所以你這時候用getParameter()找不到name,自然給你返回了一個null值。顯示在頁面上也是null。

?????? 所以前一題選D,后一題選A。

查看完整回答
2 反對 回復 2015-11-26
  • 請叫我百度
    請叫我百度
    非常感謝!懂了。沒想到題庫的答案也有問題
  • sxian_wang
    sxian_wang
    我看到答案也很納悶,專門用代碼測試了下。。
?
HansonQ

TA貢獻223條經驗 獲得超56個贊

請求轉發:request.getRequestDispatcher(“/xx.jsp”).forward(request,response);可以實現request域對象數據共享(這一點很重要,日后學springmvc或者其他視圖框架會用到),地址欄不會反生變化(也就是一個請求)。

重定向:地址欄發生變化,request不能共享,兩次請求

查看完整回答
反對 回復 2015-11-26
?
慕男嬸

TA貢獻98條經驗 獲得超73個贊

轉發:request.getRequestDispatcher(“/xx.jsp”).forward(request,response);?其特點是:地址欄無變化,始終是一個請求,轉發的對象可以是本工程內的任何頁面。

?重定向:就相當于客戶端向服務器請求時,服務器響應給客戶端一個新的URL瀏覽器就把請求傳遞個一個新的頁面 。特點是:地址發生了變化,重定向的范圍沒有限制。

查看完整回答
反對 回復 2015-11-26
?
sxian_wang

TA貢獻16條經驗 獲得超8個贊

早上起來答。。。

查看完整回答
反對 回復 2015-11-26
?
請叫我百度

TA貢獻5條經驗 獲得超1個贊

5655c5510001b8f005000193.jpg

5655c5510001875305000381.jpg

具體就是這兩個問題 ?,求幫忙解釋一下為什么?

查看完整回答
反對 回復 2015-11-25
  • 5 回答
  • 1 關注
  • 2871 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號