天天看點

java對cookie的操作

java對cookie的操作java對cookie的操作比較簡單,主要介紹下建立cookie和讀取cookie,以及如何設定cookie的生命周期和cookie的路徑問題。 建立一個無生命周期的cookie,即随着浏覽器的關閉即消失的cookie,代碼如下1HttpServletRequest request 2HttpServletResponse response3Cookie cookie = new Cookie("cookiename","cookievalue");4response.addCookie(cookie); 下面建立一個有生命周期的cookie,可以設定他的生命周期1cookie = new Cookie("cookiename","cookievalue");2 3cookie.setMaxAge(3600);4 5//設定路徑,這個路徑即該工程下都可以通路該cookie 如果不設定路徑,那麼隻有設定該cookie路徑及其子路徑可以通路6 7cookie.setPath("/");8response.addCookie(cookie); 下面介紹如何讀取cookie,讀取cookie代碼如下1Cookie[] cookies = request.getCookies();//這樣便可以擷取一個cookie數組2for(Cookie cookie : cookies){3 cookie.getName();// get the cookie name4 cookie.getValue(); // get the cookie value5} 上面就是基本的讀寫cookie的操作。我們在實際中最好進行一下封裝,比如增加一個cookie,我們關注的是cookie的name,value,生命周期,是以進行封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下0108public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){09 Cookie cookie = new Cookie(name,value);10 cookie.setPath("/");11 if(maxAge>0) cookie.setMaxAge(maxAge);12 response.addCookie(cookie);13} 讀取cookie的時候,為了友善我們的操作,我們希望封裝一個函數,隻要我們提供cookie的name,我們便可以擷取cookie的value,帶着這個想法,很容易想到将cookie封裝到Map裡面,于是進行下面的封裝view sourceprint?0107public static Cookie getCookieByName(HttpServletRequest request,String name){08 Map cookieMap = ReadCookieMap(request);09 if(cookieMap.containsKey(name)){10 Cookie cookie = (Cookie)cookieMap.get(name);11 return cookie;12 }else{13 return null;14 } 15}16 17 18 1924private static Map ReadCookieMap(HttpServletRequest request){ 25 Map cookieMap = new HashMap ();26 Cookie[] cookies = request.getCookies();27 if(null!=cookies){28 for(Cookie cookie : cookies){29 cookieMap.put(cookie.getName(), cookie);30 }31 }32 return cookieMap;33}