servlet中二種方式的跳轉和應用區別

一:response.sendRedirect("user.jsp");
它是向客戶瀏覽器發送頁面重定向指令,瀏覽器接收後將向web服務器重新發送頁面請求,所以執行完後瀏覽器的url顯示的是跳轉後的頁面
1:這種方式的跳轉可以將頁面跳轉到任何地方,例如其它網站,不僅限於本WEB應用中。
2:跳轉後地址欄上的地址會發生變化,地址會變成我們跳轉後的頁面地址
3:需要傳遞參數的話,只能帶在url後面或者session中,不能通過request.setAttribute傳遞參數

二:
RequestDispatcher requestDispatcher = request.getRequestDispatcher("user.jsp");
requestDispatcher.forward(request, response);
它是直接在服務器中進行處理,將處理完後的信息發送給瀏覽器進行顯示,所以完成後在url中顯示的是跳轉前的頁面。在forward的時候將上一頁面中傳送的 request和response信息一同發送給下一頁面(而response.sendRedirect不能將上一頁面的request和 response信息發送到下一頁面)。由於forward是直接在服務器中進行處理,所以forward的頁面只能是本服務器的。
1:這種方式的跳轉頁面僅限於本WEB應用,不能跳轉到其它應的地址中
2:跳轉後瀏覽器中的地址不會發生變化
3:參數可以通過url,session,request.setAttributet等方式傳遞。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章