實(shí)際發(fā)生位置不同,地址欄不同
轉(zhuǎn)發(fā)是發(fā)生在服務(wù)器的
轉(zhuǎn)發(fā)是由服務(wù)器進(jìn)行跳轉(zhuǎn)的,細(xì)心的朋友會(huì)發(fā)現(xiàn),在轉(zhuǎn)發(fā)的時(shí)候,瀏覽器的地址欄是沒(méi)有發(fā)生變化的,在我訪問(wèn)Servlet111的時(shí)候,即使跳轉(zhuǎn)到了Servlet222的頁(yè)面,瀏覽器的地址還是Servlet111的。也就是說(shuō)瀏覽器是不知道該跳轉(zhuǎn)的動(dòng)作,轉(zhuǎn)發(fā)是對(duì)瀏覽器透明的。通過(guò)上面的轉(zhuǎn)發(fā)時(shí)序圖我們也可以發(fā)現(xiàn),實(shí)現(xiàn)轉(zhuǎn)發(fā)只是一次的http請(qǐng)求,一次轉(zhuǎn)發(fā)中request和response對(duì)象都是同一個(gè)。這也解釋了,為什么可以使用request作為域?qū)ο筮M(jìn)行Servlet之間的通訊。
重定向是發(fā)生在瀏覽器的
重定向是由瀏覽器進(jìn)行跳轉(zhuǎn)的,進(jìn)行重定向跳轉(zhuǎn)的時(shí)候,瀏覽器的地址會(huì)發(fā)生變化的。曾經(jīng)介紹過(guò):實(shí)現(xiàn)重定向的原理是由response的狀態(tài)碼和Location頭組合而實(shí)現(xiàn)的。這是由瀏覽器進(jìn)行的頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)重定向會(huì)發(fā)出兩個(gè)http請(qǐng)求,request域?qū)ο笫菬o(wú)效的,因?yàn)樗皇峭粋€(gè)request對(duì)象轉(zhuǎn)發(fā)和重定向的區(qū)別
轉(zhuǎn)發(fā)和重定向使用哪一個(gè)?根據(jù)上面說(shuō)明了轉(zhuǎn)發(fā)和重定向的區(qū)別也可以很容易概括出來(lái)。轉(zhuǎn)發(fā)是帶著轉(zhuǎn)發(fā)前的請(qǐng)求的參數(shù)的。重定向是新的請(qǐng)求。
典型的應(yīng)用場(chǎng)景:
轉(zhuǎn)發(fā): 訪問(wèn) Servlet 處理業(yè)務(wù)邏輯,然后 forward 到 jsp 顯示處理結(jié)果,瀏覽器里 URL 不變
重定向: 提交表單,處理成功后 redirect 到另一個(gè) jsp,防止表單重復(fù)提交,瀏覽器里 URL 變了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/73323.html
請(qǐng)求轉(zhuǎn)發(fā):request.getRequestDispatcher(跳轉(zhuǎn)頁(yè)面).forward(request,response);重定向:response.sendRedirect(跳轉(zhuǎn)頁(yè)面); 區(qū)別showImg(https://segmentfault.com/img/bVbpx8n?w=583&h=295); 請(qǐng)求轉(zhuǎn)發(fā)的流程 showImg(https://segmentfault....
摘要:二請(qǐng)求轉(zhuǎn)發(fā)與響應(yīng)重定向中路徑參數(shù)區(qū)別假設(shè)通過(guò)請(qǐng)求到達(dá)該方法所屬的。請(qǐng)求轉(zhuǎn)發(fā)參數(shù)可以指定為相對(duì)路徑或絕對(duì)路徑。同理提交表單給路徑問(wèn)題頁(yè)面提交表單給時(shí),路徑的寫法要格外注意。 轉(zhuǎn)自:http://blog.sina.com.cn/s/blo... 一、請(qǐng)求轉(zhuǎn)發(fā)與響應(yīng)重定向的種類 有兩種方式獲得Servlet轉(zhuǎn)發(fā)對(duì)象(RequestDispatcher):一種是通過(guò)HttpServletRe...
摘要:瀏覽器的中文數(shù)據(jù)提交給服務(wù)器,以編碼對(duì)中文編碼,當(dāng)我在讀取數(shù)據(jù)的時(shí)候,拿到的當(dāng)然是亂碼。接下來(lái)使用方式傳遞中文數(shù)據(jù),把表單的方式改成即可當(dāng)我們?cè)L問(wèn)的時(shí)候,又出現(xiàn)亂碼了于是我按照上面的方式,把對(duì)象設(shè)置編碼為試試結(jié)果還是亂碼。 什么是HttpServletRequest HttpServletRequest對(duì)象代表客戶端的請(qǐng)求,當(dāng)客戶端通過(guò)HTTP協(xié)議訪問(wèn)服務(wù)器時(shí),HTTP請(qǐng)求頭中的所有信...
閱讀 776·2019-08-29 12:49
閱讀 3563·2019-08-29 11:32
閱讀 3459·2019-08-26 10:43
閱讀 2413·2019-08-23 16:53
閱讀 2063·2019-08-23 15:56
閱讀 1710·2019-08-23 12:03
閱讀 2781·2019-08-23 11:25
閱讀 2095·2019-08-22 15:11