Servlet之Cookie操作

來源:互聯網
上載者:User

標籤:擷取   java   strong   dex   comm   hash   repr   ring   cookie   

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

1,建立一個無生命週期的cookie,即隨著瀏覽器的關閉即消失的cookie,代碼如下

HttpServletRequest request HttpServletResponse responseCookie cookie = new Cookie("cookiename","cookievalue");response.addCookie(cookie); 

2,建立一個有生命週期的cookie,可以設定他的生命週期

cookie = new Cookie("cookiename","cookievalue");cookie.setMaxAge(3600);//設定路徑,這個路徑即該工程下都可以訪問該cookie 如果不設定路徑,那麼只有設定該cookie路徑及其子路徑可以訪問cookie.setPath("/");response.addCookie(cookie); 

3,如何讀取cookie,讀取cookie代碼如下

Cookie[] cookies = request.getCookies();//這樣便可以擷取一個cookie數組for(Cookie cookie : cookies){    cookie.getName();// get the cookie name    cookie.getValue(); // get the cookie value} 

4,封裝,增加一個cookie,我們關注的是cookie的name,value,生命週期,所以進行封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下

/** * 設定cookie * @param response * @param name  cookie名字 * @param value cookie值 * @param maxAge cookie生命週期  以秒為單位 */public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){    Cookie cookie = new Cookie(name,value);    cookie.setPath("/");    if(maxAge>0)  cookie.setMaxAge(maxAge);    response.addCookie(cookie);} 

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

/** * 根據名字擷取cookie * @param request * @param name cookie名字 * @return */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;    }  } /** * 將cookie封裝到Map裡面 * @param request * @return */private 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;}    

Servlet之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.