servlet跳轉頁面的兩種方式
sendRedirect和forward瀏覽器
相同點:
都不會改變session的值和狀態;服務器
均可以在URL後面傳遞參數;網絡
不一樣點:
- request是客戶端的對象,response是服務端的對象,
- response在跳轉的時候,必須遵循瀏覽器地址規範;
<hr/>session
- sendRedirect在跳轉到JSP時,URL顯示路徑爲JSP文件路徑,刷新頁面時,默認刷新的是當前JSP頁面;
- forward在跳轉到JSP時,URL顯示路徑爲servlet路徑,刷新頁面時,默認再次發起一個servlet請求;
<hr/>對象
- forward是能夠在request裏setAttribute傳值的;
- sendRedirect不能夠在request裏setAttribute傳值,會被清空;
<hr/>資源
- sendRedirect是服務器接收請求以後,會從新發一個狀態頭給客戶端,客戶端收到後會再請求一次,也就是兩次網絡鏈接。因此請求另外一個服務器上的資源時,必須使用sendRedirect。
- forward是在服務器內部作跳轉,由一個程序跳轉到另外一個程序,客戶端並不知道。所以:forward更快。
歡迎關注本站公眾號,獲取更多信息