1 forword是RequestDispatcher 接口(請求轉(zhuǎn)發(fā)) ,而 redirect是HttpServletResponse 接口(請求重定向)
2、response.sendRedirect()不僅可以重定向到當前應用程序中的其他資源,它還可以重定向到同一個站點上的其他應用程序中的資源,甚至是使用絕對URL重定向到其他站點的資源。而RequestDispatcher.forward 方法只能在同一個WEB應用程序內(nèi)資源之間轉(zhuǎn)發(fā)請求
3、從地址欄顯示來說forward是服務器請求資源,即服務器直接訪問目標地址的URL,把那個URL的響應內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器根本不知道服務器發(fā)送的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址.redirect是服務端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL。
5.從數(shù)據(jù)共享來說
forward:轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù).
redirect:不能共享數(shù)據(jù).
6.從效率來說
forward:高.
redirect:低.