1. 程式人生 > >Java基礎之Java Web中 什麼是重定向和轉發?如何選擇使用重定向還是轉發?

Java基礎之Java Web中 什麼是重定向和轉發?如何選擇使用重定向還是轉發?

1.重定向和轉發的區別是什麼?

重定向是兩次請求,轉發是一次請求,因此轉發的速度要快於重定向。

重定向之後位址列上的地址會發生變化,變化成第二次請求的地址,轉發之後位址列上的地址不會變化,還是第一次請求的地址。

重點:重定向和請求轉發之後的程式碼都會執行,直到方法結束或者遇到了 return 語句


2. 如何選擇使用重定向還是轉發?

頁面跳轉建議使用重定向,有內部 Servlet 跳轉建議使用轉發。

2.1 為什麼頁面跳轉選擇使用重定向呢?

  1. 轉發請求地址會變化
  2. 轉發只能在站內跳轉,重定向可以跳轉到任意想要的地方

2.2 為什麼內部Servlet跳轉跳轉選擇使用轉發呢?

如果程式碼邏輯是 ServletA -> ServletB -> *.jsp ,使用轉發,那麼這三次操作都在一次請求中,而如果使用重定向,那麼客戶端將發起三次請求,這真的毫無必要。

如果程式碼邏輯中含有內部的 Servlet 跳轉,使用轉發會使一個好的選擇。