Java Web中的重定向和轉(zhuǎn)發(fā)是兩種跳轉(zhuǎn)方式,常用于網(wǎng)頁(yè)跳轉(zhuǎn)和參數(shù)傳遞等。下面我們來(lái)詳細(xì)介紹這兩種跳轉(zhuǎn)方式。
一、重定向
response.sendRedirect(url);
重定向是指將請(qǐng)求的URL進(jìn)行改變,服務(wù)器告訴瀏覽器跳轉(zhuǎn)到新的URL頁(yè)面,瀏覽器對(duì)新的URL進(jìn)行重新請(qǐng)求,原始頁(yè)面失效。可以用于實(shí)現(xiàn)一些重要操作,例如登錄、注冊(cè)等。與轉(zhuǎn)發(fā)不同,重定向是完全由瀏覽器重新發(fā)出請(qǐng)求,所以可以跳轉(zhuǎn)到任意站點(diǎn)。
二、轉(zhuǎn)發(fā)
request.getRequestDispatcher(url).forward(request, response);
轉(zhuǎn)發(fā)是指將請(qǐng)求的URL不變,但將處理權(quán)交給另一個(gè)web資源,由被轉(zhuǎn)發(fā)的資源繼續(xù)執(zhí)行,原始頁(yè)面仍然存在。可以用于實(shí)現(xiàn)不同url之間的資源共享,例如顯示文章詳情頁(yè)等。與重定向不同,轉(zhuǎn)發(fā)是在服務(wù)器內(nèi)進(jìn)行的,所以只能跳轉(zhuǎn)到同一個(gè)應(yīng)用下的資源。
重定向和轉(zhuǎn)發(fā)各有優(yōu)缺點(diǎn),具體要根據(jù)需求來(lái)選擇。在實(shí)際應(yīng)用中一般都會(huì)根據(jù)不同的場(chǎng)景來(lái)決定使用哪種方式。