首頁  >  文章  >  Java  >  java 中cookie的詳解及簡單實例

java 中cookie的詳解及簡單實例

高洛峰
高洛峰原創
2017-01-18 14:35:341303瀏覽

java 中cookie的詳解

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

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

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

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

cookie
 = new Cookie("cookiename","cookievalue");
  
cookie.setMaxAge(3600);
  
//设置路径,这个路径即该工程下都可以访问该cookie
 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问
  
cookie.setPath("/");
response.addCookie(cookie);

下面介紹如何讀取cookie,讀取cookie程式碼如下

Cookie[]
 cookies = request.getCookies();//这样便可以获取一个cookie数组
for(Cookie
 cookie : cookies){
  cookie.getName();//
 get the cookie name
  cookie.getValue();
//
 get the cookie value
}

上面就是基本的讀寫cookie的操作。我們在實際中最好進行一下封裝,例如增加一個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);
}

   

讀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;
}

   

感謝閱讀,希望能幫助大家,謝謝大家對本站的支持!

更多java 中cookie的詳解及簡單實例相關文章請關注PHP中文網!

🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn