請求轉發、重定向、Cookie


請求轉發:

  * 作用:實現多個servlet聯動操作處理請求,這樣避免代碼冗余,讓servlet的職責更加明確。
  * 使用:
    * req.getRequestDispatcher("要轉發的地址").forward(req, resp);
    * 地址:相對路徑,直接書寫servlet的別名即可。
    * 特點:
  * 一次請求,瀏覽器地址欄信息不改變。
  * 注意:
    * 請求轉發后直接return結束即可。
  *reuqet作用域:
    * 解決了一次請求內的servlet的數據共享問題

重定向:

* 解決了表單重復提交的問題,以及當前servlet無法處理的請求的問題。
* 使用:
* resp.sendRedirect(String uri);
* 示例:
* resp.sendRedirect("/login/main");
* 特點:
* 兩次請求,兩個request對象。
* 瀏覽器地址欄信息改變
* 時機:
* 如果請求中有表單數據,而數據又比較重要,不能重復提交,建議使用重定向。
* 如果請求被Servlet接收后,無法進行處理,建議使用重定向定位到可以處理的資源。

Cookie:

  * 作用:解決了發送的不同請求的數據共享問題
  * 使用:
    * Cookie的創建和存儲
      * 創建Cookie對象
      * Cookie c=new Cookie(String name, String value);
    * //設置cookie(可選)
      * 設置有效期
      * c.setMaxAge(int seconds);
      * 設置有效路徑
        * c.setPath(String uri)
    * //響應Cookie信息給客戶端
      * resp.addCookie(c);
  * Cookie的獲取
    * 獲取Cookie信息數組
      * Cookie[] cks=req.getCookies();
    * 遍歷數組獲取Cookie信息
    * 使用for循環遍歷即可,示例:
        if(cks!=null){
          for(Cookie c:cks){
            String name=c.getName();
            String value=c.getValue();
            System.out.println(name+":"+value);
          }
        }
  * 注意:
    * 一個Cookie對象存儲一條數據。多條數據,可以多創建幾個Cookie對象進行存儲。
  * 特點:
    * 瀏覽器端的數據存儲技術。
    * 存儲的數據聲明在服務器端。
    * 臨時存儲:存儲在瀏覽器的運行內存中,瀏覽器關閉即失效。
    * 定時存儲:設置了Cookie的有效期,存儲在客戶端的硬盤中,在有效期內符合路徑要求的請求都會附帶該信息。
    * 默認cookie信息存儲好之后,每次請求都會附帶,除非設置有效路徑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM