在Servlet中,forward和redirect是兩種不同的頁面跳轉方式。
forward是服務器端跳轉,它是通過RequestDispatcher對象的forward()方法實現的。
forward是在服務器內部完成的,客戶端瀏覽器并不知道頁面的跳轉。
forward可以將請求的數據傳遞給下一個頁面。
forward的路徑是相對于當前Servlet的路徑,可以跳轉到WEB-INF目錄下的頁面。
forward可以跳轉到當前WEB應用中的其他Servlet、JSP頁面或HTML頁面。
redirect是通過HttpServletResponse對象的sendRedirect()方法實現的。
redirect是通過告知瀏覽器發送一個新的請求,瀏覽器收到服務器返回的重定向響應后,會向新的URL地址發出新的請求。
redirect是客戶端行為,客戶端瀏覽器會重新向指定的頁面發送請求,URL地址會發生變化。
redirect不可以將請求的數據傳遞給下一個頁面,需要通過URL參數進行傳遞。
redirect的路徑是相對于當前的域名,不能跳轉到WEB-INF目錄下的頁面。
redirect可以跳轉到任意URL地址,包括其他WEB應用中的頁面。