1. 程式人生 > >重定向和轉發的區別

重定向和轉發的區別

重定向 轉發

重定向
技術分享圖片
轉發
技術分享圖片

重定向:
客戶端像服務器端發送請求,服務器告訴客戶端你去重定向(狀態碼302,響應頭location=客戶端絕路路徑),客戶端繼續像服務器發送請求(請求地址已經成重定向的地址),服務器端給客戶端響應

轉發
客戶端像服務器端發送請求,服務器將請求轉發到服務器內部,在響應給客戶端

重定向
response.setStatus(302) response.setHeader("location","/項目名稱/資源"); 或者簡寫成 response.sendRedirect("/項目名稱/資源")

轉發
getRequestDispatcher(“/資源”) .forward(request.response)

區別:
什麽時候使用重定向,什麽時候使用轉發

  • 轉發地址欄不變(一次請求),重定向地址欄變化(兩次)
  • 轉發不用寫項目名稱,重定向需要編寫項目名稱
  • 轉發可以使用request對象傳遞值,重定向不可以使用request對象傳遞值
  • 轉發只能在服務器的內部進行操作,重定向可以定向到任何的資源!!

重定向和轉發的區別