Servlet轉向和重定向的區別

  • 轉向:請求轉發是指將請求再轉發到其他地址,轉發過程中使用的是同一個請求,轉發的地址欄內容不變。
  • 重定向:是指由原請求地址重新定位到某個新地址,原有的請求失效,客戶端看到的是新的請求返回的相應結果。

舉例說明吧:

轉發過程:
客戶端對servlet1容器發起請求,但是servlet1想讓servlet2進行一波客戶端請求處理,於是就調用servlet協作讓servlet2進行處理。
重定向過程:
客戶端對servlet1容器發起請求,但是servlet1想讓servlet2進行一波客戶端請求處理,Servlet1調用sendRedirect()方法,將客戶端的請求重定向到Servlet2,然後瀏覽器重新請求一次servlet2,servlet2進行請求處理

區別

  1. 請求次數不一樣
  2. .響應之後,地址欄是否發生改變
  3. 重定向的響應結果可以“外包”出去;請求轉發的相應結果只能靠同一個WEB應用中的組件(如另外一個servlet頁面)
  4. 重定向對瀏覽器的請求直接作出響應,讓瀏覽器去重新發出對另外一個URL的訪問請求
  5. 請求轉發中用戶並不知道是誰完成了該工作,瀏覽器只知道發出請求和得到相應結果,並不知道服務器內部發生了轉換行爲
發佈了62 篇原創文章 · 獲贊 90 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章