forward是服務器內部的跳轉,瀏覽器的地址欄不會發生變化,同時可以把request和response傳遞給后一個請求。sendRedirect()是瀏覽器方面的跳轉,要發送兩次請求,地址欄也會發生變化,同時request和response也會發生變化,重新生成新的對象。
URL重定向的特點:
1):瀏覽器地址欄路徑發送變化
2):只發送了兩個請求.
3):因為是不同的請求,所以不能共享請求中的數據.
4):可以跨域訪問資源.
5):不可以訪問WEB-INF中的資源.
請求轉發的特點:
1):瀏覽器地址欄路徑沒變
2):只發送了一個請求.
3):共享同一個請求,在請求敏感詞享數據.
4):只能訪問當前應用中的資源,不能跨域跳轉.
5):可以訪問WEB-INF中的資源.
請求轉發和URL重定向的選擇?
1:若需要共享請求中的數據,只能使用請求轉發.
2:若需要訪問WEB-INF中的資源,只能使用請求轉發.
3:若需要跨域訪問,只能使用URL重定向.
4:請求轉發可能造成表單的重復提交問題.
5:其他時候,任選.