程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 中cookie的詳解及復雜實例

java 中cookie的詳解及復雜實例

編輯:關於JAVA

java 中cookie的詳解及復雜實例。本站提示廣大學習愛好者:(java 中cookie的詳解及復雜實例)文章只能為提供參考,不一定能成為您想要的結果。以下是java 中cookie的詳解及復雜實例正文


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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved