1. 程式人生 > >java web轉發與重定向

java web轉發與重定向

一、轉發

      web專案內部轉發到另一個頁面或者另一個servlet

二、重定向

        重定向到另一個地址,可以在web專案內,也可以在專案外

三、對比:

       轉發時,會將request物件轉到另一個轉向的servlet,因此可以在request中傳遞資料;

       重定向相當於服務端返回302,客戶端重新再去請求新的地址,是一個新的request物件,因此不能通過request物件傳遞資料

      轉發時,瀏覽器位址列不會改變,相當於服務端的內部的轉發,客戶端無感知;

      重定向時客戶端瀏覽器地址會變化,相當於服務端告訴客戶端去另一個地址,瀏覽器再重新請求一個新的地址,更多可以理解為客戶端的轉換

     轉發只能在web應用內的資源,重定向可以是任一個uri地址

四、相關方法

       轉發:  request.getRequestDispatcher("index.jsp").forward(request, response);

       重定向:response.sendRedirect("/day11/one?aaa=123qwe");  response.sendRedirect("www.baidu.com");

  1.轉發在服務端完成,重定向在客戶端完成

  2.轉發位址列不變,重定向位址列變化

  3.轉發不會執行轉發後的程式碼,重定向會執行後面的程式碼

  4.轉發是一次請求,重定向是兩次請求

  5.轉發在同一臺伺服器,重定向可以在不同的伺服器

  6.轉發快,重定向慢