重定向與轉發的區別:
1.重定向訪問服務器兩次,轉發只訪問服務器一次。
2.重定向可以看見目標頁面的URL,轉發只能看見第一次訪問的頁面URL,以后的工作都是有服務器來做的。
3.重定向跳轉后必須加上return,要不然頁面雖然跳轉了,但是還會執行跳轉后面的語句,轉發是執行了跳轉頁面,下面的代碼就不會在執行了。
4.在request級別使用信息共享,使用重定向必然出錯
5.還有一個大的區別就是,重定向可以訪問自己web應用以外的資源
請求轉發:
request.getRequestDispatcher(URL地址).forward(request, response)
處理流程:
客戶端發送請求,Servlet做出業務邏輯處理。
Servlet調用forword()方法,服務器Servlet把目標資源返回給客戶端瀏覽器。
請求轉發
2)重定向:
response.sendRedirect(URL地址)
處理流程:
客戶端發送請求,Servlet做出業務邏輯處理。
Servlet調用response.sendReadirect()方法,把要訪問的目標資源作為response響應頭信息發給客戶端瀏覽器。
客戶端瀏覽器重新訪問服務器資源xxx.jsp,服務器再次對客戶端瀏覽器做出響應。