Servlet高級應用——轉發與重定向

一、轉發(控制頁面跳轉   -查詢)
JSP請求轉發和請求重定向:本質的區別是請求轉發只發出了一次請求,而重定向則發出兩次請求

兩者區別在於是不是同一個request

每次重定向資源需要重新發送一個新的請求
而轉發使用的是同一個request,因此不會有延遲,優先使用

         

①轉發  目地:可以使用request.getAttribute方法獲得綁定的數據,然後進行處理。

   一個Web組件(Servlet/JSP)將未完成的處理通過容器轉交給另外一個Web組件繼續完成。
   常見的情況是:一個Servlet將數據處理完畢之後,轉交給一個JSP去展現。
   1)轉發的目的地有限制,只能夠是同一個應用內部的某個組件的地址。
   2)轉發之後,瀏覽器地址欄的地址不變。
   3)轉發所涉及的各個Web組件可以共享同一個request對象和response對象
②如何轉發(查詢)
step1:綁定數據到requset
     request.setAttribute(String name,Object obj);
            name:綁定名。obj:綁定值。
另一個方法獲取綁定值:
      Object request.getAttribute(String name);
            如果綁定對象的值不存在,會返回null
step2:獲得一個轉發器
       RequestDispatcher            
       rd=request.getRequsetDispatcher(String url);
       url:要轉發給哪一個Web組件
step3:轉發
       rd.forward(request,response);
       JSP和Servlet會共享相同的請求和響應對象
step4:在轉發的目的地,可以使用 
   request.getAttribute方法獲得綁定的數據,然後進行處理。
二、重定向(-增加、修改、刪除)
   服務器通知瀏覽器向一個新的地址發送請求
   重定向之前,容器會先清空response中所有保存的數據
   response.sendRedirec(String url);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章