码迷,mamicode.com
首页 > 其他好文 > 详细

Cookie对象工具包,对象添加,获取,修改-亲测可用

时间:2016-05-04 01:12:05      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

先来了解下Cookie 和 Session对象的概念吧。

首先,Cookie是客户端缓存技术,大小一般为4kb左右,主要存储一些比较小的信息,常用的例子有用户名和密码,且是不安全的;

Session是服务器缓存技术,大小不做控制,数据信息存储在服务器,是安全的。

如下是我反复测试并封装的一个Cookie工具包,供学习使用 。

 1 package com.rick.framework.utils;
 2 
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 
 6 import javax.servlet.http.Cookie;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 /**
11  * CookiesUtil.java
12  * @author Rick
13  * 2016 2016年5月2日 下午8:59:00
14  * name&path : 建议采用【常量】定义
15  */
16 public class CookiesUtil {
17     
18     /**
19      * 添加Cookie对象
20      * @param response 请求
21      * @param name 名称
22      * @param value 内容
23      * @param path 路径
24      * @param expiry 有效时间(秒)
25      * @return
26      */
27     public static boolean setCookie(HttpServletResponse response, String name, String value, String path, int expiry) {
28         Cookie cookie = new Cookie(name, value);
29         cookie.setMaxAge(expiry);// Cookie有效时间(秒):-1关闭浏览器失效,0立即失效,大于1为具体时间
30         cookie.setPath(path);
31         response.addCookie(cookie);
32 
33         return false;
34     }
35     
36     
37     /**
38      * 根据名字获取cookie
39      * @param request
40      * @param name 名称
41      * @param path 路径
42      * @return
43      */
44     public static Cookie getCookieByName(HttpServletRequest request, String name,String path) {
45         Map<String, Cookie> cookieMap = ReadCookieMap(request);
46         if (cookieMap.containsKey(name)) {
47             Cookie cookie = (Cookie) cookieMap.get(name);
48             return cookie;
49         } else {
50             return null;
51         }
52     }
53 
54     /**
55      * 移除客户端Cookie对象
56      * @param request 请求
57      * @param response 响应
58      * @param name 名称
59      * @param path 路径
60      * @return
61      */
62     public static boolean removeCookie(HttpServletRequest request,HttpServletResponse response,String name,String path){
63         //-- 清除客户端Cookie
64         try {
65             Cookie cookie = CookiesUtil.getCookieByName(request, name, path);
66             if(cookie!=null){
67                 cookie.setMaxAge(0);
68                 cookie.setPath(path);
69                 cookie.setValue(null);
70                 response.addCookie(cookie);
71                 return true;
72             }
73         } catch (Exception e) {}
74         return false;
75     }
76     
77     /**
78      * 将cookie封装到Map里面
79      * 
80      * @param request
81      * @return
82      */
83     private static Map<String, Cookie> ReadCookieMap(HttpServletRequest request) {
84         Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
85         Cookie[] cookies = request.getCookies();
86         if (null != cookies) {
87             for (Cookie cookie : cookies) {
88                 cookieMap.put(cookie.getName(), cookie);
89             }
90         }
91         return cookieMap;
92     }
93     
94 }

 

 

【登录】- 设置 Cookie

CookiesUtil.setCookie(response, IConstant.USER_COOKIE_NAME, user.getName(), IConstant.USER_COOKIE_PATH, 60*10);//--设置该用户10分钟有效时间

 

【个人中心】 - 获取Cookie

Cookie cookie = CookiesUtil.getCookieByName(request, IConstant.USER_COOKIE_NAME,IConstant.USER_COOKIE_PATH);//-- 使用名称+路径获取Cookie对象

 

【退出】 - 清除Cookie

CookiesUtil.removeCookie(request, response, IConstant.USER_COOKIE_NAME, IConstant.USER_COOKIE_PATH);//-- 通过名称+路径删除Cookie对象

 

Cookie对象工具包,对象添加,获取,修改-亲测可用

标签:

原文地址:http://www.cnblogs.com/Xiawu168/p/5456904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!