在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

java 中cookie的详解及简单实例

2017-3-7 12:51| 发布者: zhangjf| 查看: 1327| 评论: 0

摘要: java 中cookie的详解 Java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。 建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如 ...

java 中cookie的详解

Java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。

建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如下

  1. HttpServletRequest
  2. request
  3. HttpServletResponse
  4. response
  5. Cookie
  6. cookie = new Cookie("cookiename","cookievalue");
  7. response.addCookie(cookie);
复制代码

下面建立一个有生命周期的cookie,可以设置他的生命周期

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

下面介绍如何读取cookie,读取cookie代码如下

  1. Cookie[]
  2. cookies = request.getCookies();//这样便可以获取一个cookie数组
  3. for(Cookie
  4. cookie : cookies){
  5. cookie.getName();//
  6. get the cookie name
  7. cookie.getValue();
  8. //
  9. get the cookie value
  10. }
复制代码

上面就是基本的读写cookie的操作。我们在实际中最好进行一下封装,比如增加一个cookie,我们关注的是cookie的name,value,生命周期,所以进行封装一个函数,当然还要传入一个response对象,addCookie()代码如下

  1. /**
  2. *
  3. 设置cookie
  4. *
  5. @param response
  6. *
  7. @param name cookie名字
  8. *
  9. @param value cookie值
  10. *
  11. @param maxAge cookie生命周期 以秒为单位
  12. */
  13. public static void addCookie(HttpServletResponse
  14. response,String name,String value,int maxAge){
  15. Cookie
  16. cookie = new Cookie(name,value);
  17. cookie.setPath("/");
  18. if(maxAge>0)
  19. cookie.setMaxAge(maxAge);
  20. response.addCookie(cookie);
  21. }
复制代码

读取cookie的时候,为了方便我们的操作,我们希望封装一个函数,只要我们提供cookie的name,我们便可以获取cookie的value,带着这个想法,很容易想到将cookie封装到Map里面,于是进行下面的封装

  1. /**
  2. *
  3. 根据名字获取cookie
  4. *
  5. @param request
  6. *
  7. @param name cookie名字
  8. *
  9. @return
  10. */
  11. public static Cookie
  12. getCookieByName(HttpServletRequest request,String name){
  13. Map<String,Cookie>
  14. cookieMap = ReadCookieMap(request);
  15. if(cookieMap.containsKey(name)){
  16. Cookie
  17. cookie = (Cookie)cookieMap.get(name);
  18. return cookie;
  19. }else{
  20. return null;
  21. }
  22. }
  23. /**
  24. *
  25. 将cookie封装到Map里面
  26. *
  27. @param request
  28. *
  29. @return
  30. */
  31. private static Map<String,Cookie>
  32. ReadCookieMap(HttpServletRequest request){
  33. Map<String,Cookie>
  34. cookieMap = new HashMap<String,Cookie>();
  35. Cookie[]
  36. cookies = request.getCookies();
  37. if(null!=cookies){
  38. for(Cookie
  39. cookie : cookies){
  40. cookieMap.put(cookie.getName(),
  41. cookie);
  42. }
  43. }
  44. return cookieMap;
  45. }
复制代码

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-5-4 02:16

Copyright 2015-2025 djqfx

返回顶部