表單提交到servlet後,servlet進行轉發以後瀏覽器上的url爲何仍是servlet的url-pattern,可是頁面內容倒是跳轉以後頁面的內容。這個其實和轉發和重定向有關係。html
當使用轉發方法的時候,前臺提交的表單的內容在servlet中利用request對象能夠獲取到,而跳轉到result.jsp以後,在result。jsp中用request也能獲取到提交的內容。這裏瀏覽器的地址是servlet的映射地址。web
而使用重定向方法的時候,前臺提交的表單內容在servlet中能夠獲取,可是在result.jsp頁面中卻獲取不了。這裏瀏覽器的地址是目標頁面的url。瀏覽器
3.轉發是服務器行爲,重定向是客戶端行爲。服務器
轉發過程:客戶瀏覽器發送http請求----》web服務器接受此請求--》調用內 部的一個方法在容器內部完成請求處理和轉發動做----》將目標資源發送給客戶;在這裏,轉發的路徑必須是同一個web容器下的url,其不能轉向到其餘 的web路徑上去,中間傳遞的是本身的容器內的request。在客戶瀏覽器路徑欄顯示的仍然是其第一次訪問的路徑,也就是說客戶是感受不到服務器作了轉 發的。轉發行爲是瀏覽器只作了一次訪問請求。併發
重定向過程:客戶瀏覽器發送http請求----》web服務器接受後發送302狀態 碼響應及對應新的location給客戶瀏覽器--》客戶瀏覽器發現是302響應,則自動再發送一個新的http請求,請求url是新的location 地址----》服務器根據此請求尋找資源併發送給客戶。在這裏 location能夠重定向到任意URL,既然是瀏覽器從新發出了請求,則就沒有什麼request傳遞的概念了。在客戶瀏覽器路徑欄顯示的是其重定向的 路徑,客戶能夠觀察到地址的變化的。重定向行爲是瀏覽器作了至少兩次的訪問請求的。jsp
參考資料:(本博客借鑑下面兩位大牛的文章,整理了一下,僅用於學習)學習
http://blog.csdn.net/kobejayandy/article/details/13762043url
http://www.cnblogs.com/CodeGuy/archive/2012/02/13/2349970.htmlspa