ホームページ  >  記事  >  Java  >  JavaのCookieの詳細な説明と簡単な例

JavaのCookieの詳細な説明と簡単な例

高洛峰
高洛峰オリジナル
2017-01-18 14:35:341255ブラウズ

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 の名前、値、ライフサイクルに重点を置くため、関数をカプセル化し、当然 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 の名前を指定する限り、Cookie の値を取得できるようにしたいと考えています。 Map で Cookie をカプセル化することは簡単に考えられるので、次のようなカプセル化が実行されます

/**
 *
 根据名字获取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 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。