原理:
forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。
redirect就是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以獲取
所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,並且,這樣也有助於隱藏實際的鏈接。
調用方法:
Servlet中
request.getRequestDispatcher("new.jsp").forward(request, response);//轉發到new.jsp
response.sendRedirect("new.jsp");//重定向到new.jsp
<jsp:forward page="apage.jsp" /> <%response.sendRedirect("new.jsp");%><!--重定向到new.jsp-->
