Servlet API中forward() 與redirect()的區別


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(地址)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM