1、 forward是服務器端的轉向也就是請求轉發而redirect是客戶端的跳轉也就是重定向
2、 使用forward瀏覽器的地址不會發生改變。而redirect會發生改變。
3、 forward是一次請求中完成。而redirect是重新發起請求。
4、 forward是在服務器端完成,而不用客戶端重新發起請求,效率較高。
那么下面我就對請求轉發和重定向進行一個特點的區分:
1、請求轉發的特點:
1》只請求一次,而且屬於內部跳轉
2》地址欄不會發生變化
3》不允許訪問外部資源
4》絕對路徑的/代表的是根目錄之后
5》效率偏高
請求轉發的語法:
request.getRequestDispacher(地址).forward(請求對象,響應對象)
2、重定向的特點:
1》整個過程發出兩次請求
2》地址欄會發生變化,並跳轉到最新的頁面,地址欄也是最新頁面的地址
3》允許訪問外部資源,因為服務器已經響應回了瀏覽器,而且瀏覽器也發出了新的請求,由於HTTP是無狀態的所以兩次請求沒有聯系,第二次請求可以隨意去任何網頁
4》絕對路徑的/代表的是端口號之后
5》效率偏低,因為有兩次請求,相對來說效率低
重定向語法:
response.sendRedirect(地址)