請求轉發:
一次請求,一次響應 request對象是同一個
地址欄不會發生變化
只能用於服務器內部的資源跳轉, 並且只能是同一應用中的不同資源上進行跳轉, 不可用在不同應用和不同服務器中的資源跳轉
請求重定向:
兩次請求,兩次響應 request對象不是同一個
地址欄會發生變化
可以用於服務器內部的資源跳轉, 也可以用於不同應用和不同服務器之間的資源跳轉
定時刷新:
兩次請求,兩次響應 request對象不是同一個
地址欄會發生變化
可以用於服務器內部的資源跳轉, 也可以用於不同應用和不同服務器之間的資源跳轉
和重定向不同的是, 定時刷新可以在刷新到新的地址之間設置一個時間, 在間隔的這段時間內可以輸出文本到瀏覽器並維系一段時間
那什么時候用哪種方式進行資源的跳轉呢?
如果是同一服務器中的同一應用內部的資源跳轉:
~如果需要利用request域在跳轉的資源之間傳輸數據, 只能用請求轉發
~如果不想讓地址欄發生變化, 只能用請求轉發
~如果需要地址欄發生變化, 只能用重定向或定時刷新
~如果沒有什么特殊需求, 三種方式都可以, 但是推薦使用轉發, 可以減少請求次數降低服務器的壓力.
~如果只是想更新刷新操作, 最好使用重定向或定時刷新, 使用請求轉發, 在刷新時會把剛才的操作再做一遍, 可能會導致一些問題, 比如表單重復提交或重復支付訂單等
如果是不同服務器或不同應用內部的資源跳轉, 只能用重定向或者定時刷新:
重定向和定時刷新的主要區別在於: 重定向會立即跳轉, 而定時刷新可以設置一個時間間隔, 在指定時間后再進行跳轉.
如果在跳轉之前需要輸出提示信息(如: 注冊成功, xx秒后跳轉到xxx)只能用定時刷新, 否則兩種方式都可以.