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更快。
相關文章
相關標籤/搜索