java對cookie的操作

來源:互聯網
上載者:User

標籤:數組   對象   ret   comment   就是   方便   contains   void   eva   

java對cookie的操作比較簡單,主要介紹下建立cookie和讀取cookie,以及如何設定cookie的生命週期和cookie的路徑問題。

建立一個無生命週期,隨著瀏覽器關閉而消失的cookie:

HttpServletRequest request;

HttpServletRespone  respone;

Cookie cookie=new Cookie("cookiename","cookievalue");

respone.addCookie(cookie);

下面建立一個有生命週期的cookie,可以設定其生命週期

cookie=new Cookie("cookiename","cookievalue");

cookie.setMaxAge(3600);

//設定路徑,這個路徑即該工程下都可以訪問該cookie 如果不設定路徑,那麼只有設定該cookie路徑及其子路徑可以訪問

cookie.setPath("/");

respone.addCookie(cookie);

下面介紹如何讀取cookie:

Cookie cookies[]=request.getCookies();//擷取一個cookies數組

for(Cookie cookie:cookies){

         cookie.getName();

         cookie.getValue();

            }

上面就是基本的讀寫cookie的操作。我們在實際中最好進行一下封裝,比如增加一個cookie,我們關注的是cookie的name,value,生命週期,所以進行封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下

public static void addCookie(HttpSevletRespone respone,String name,String value,int  maxAge){

              Cookie cookie=new Cookie(name,value);

              cookie.setPath("/");

              if(maxAge>0)   cookie.setMaxAge(maxAge);

              respone.addCookie(cookie);

               }

讀取cookie的時候,為了方便我們的操作,我們希望封裝一個函數,只要我們提供cookie的name,我們便可以擷取cookie的value,帶著這個想法,很容易想到將cookie封裝到Map裡面,於是進行下面的封裝:

public static Cookie getCookieByName(HttpServletRequest request,String name){

            Map<String ,Cookie>cookieMap=ReadCookieMap(request);

            if(cookieMap.containsKey(name)){

             Cookie cookie=(Cookie)cookieMap.get(name);

             return cookie;

                }

     else{

            return null;

           }

      }

public static Map<String,Cookie>ReadCookieMap(HttpServletRequest request){

               Map<String,Cookie>cookieMap=new HashMap<String,Cookie>();

               Cookie cookies[]=request.getCookies();

               if(null!=cookies){

                        for(Cookie cookie:cookies){

                             cookieMap.put(cookie.getName(),cookie);

                             }

                      }

        return cookieMap;

          }

          

java對cookie的操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.