1.重定向:是屬於客戶端行爲,實現方法:response.sendRedirect() 從本質上講等同於兩次請求,前一次的請求對象不會保留,在瀏覽器上的直觀表現是——地址欄的URL地址會改變。瀏覽器
2.請求轉發:是屬於服務器行爲,實現方法:request.getRequsetDispatcher().forward(requset,response) 是一次請求,轉發後請求對象會保存,瀏覽器上的直觀表現就是——地址欄的URL地址不會改變。(服務器內部轉發,因此客戶端看不到地址欄的改變)服務器
下面舉個生活中的實例來講明(其餘博文看到的一個例子):spa
重定向: 就比如咱們(瀏覽器)找一個A廣告公司給設計名片,A明確告訴咱們他們不會設計,就讓咱們找B公司,結果B公司 給我設計好了,因此咱們會對外宣稱是B公司給咱們設計的名片,(因此咱們就至關於發送了兩次次請求,URL地址 欄裏就從A變成了B公司)設計
請求轉發: 一樣去找A公司給設計名片,A公司雖然不能設計可是他們接下了咱們的活,把這項任務外包(轉發)給B公司,最 終咱們會把錢給A公司,也就會對外宣稱是A公司給咱們設計的名片這就是請求重定向(因此咱們就至關於只對A發 送了一次請求,URL地址欄裏依然是A公司)。對象