1 forword是RequestDispatcher 接口(請求轉(zhuǎn)發(fā)) ,而 redirect是HttpServletResponse 接口(請求重定向)
2粥烁、response.sendRedirect()不僅可以重定向到當(dāng)前應(yīng)用程序中的其他資源,它還可以重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對URL重定向到其他站點(diǎn)的資源秆乳。而RequestDispatcher.forward 方法只能在同一個(gè)WEB應(yīng)用程序內(nèi)資源之間轉(zhuǎn)發(fā)請求
3缀程、從地址欄顯示來說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。
5.從數(shù)據(jù)共享來說
forward:轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù).
redirect:不能共享數(shù)據(jù).
6.從效率來說
forward:高.
redirect:低.