博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java对cookie的操作
阅读量:6500 次
发布时间:2019-06-24

本文共 2007 字,大约阅读时间需要 6 分钟。

原文:http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html

 

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 反射
查看>>
ORACLE物化视图(物理视图)
查看>>
android 读取json数据(遍历JSONObject和JSONArray)(转)
查看>>
UIScrollView中的手势
查看>>
递归和迭代的差别
查看>>
基于jquery的可拖动div
查看>>
可以简易设置文字内边距的EdgeInsetsLabel
查看>>
[詹兴致矩阵论习题参考解答]习题1.3
查看>>
Android Fragment的使用
查看>>
沙朗javascript总结一下(一)---基础知识
查看>>
js深入研究之函数内的函数
查看>>
LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
查看>>
python之commands模块
查看>>
android应用开发--------------看RadioGroup源代码,写相似单选选项卡的集成控件(如底部导航,tab等等)...
查看>>
LeetCode - Binary Tree Level Order Traversal
查看>>
FTP协议完全详解
查看>>
【C语言天天练(十五)】字符串输入函数fgets、gets和scanf
查看>>
【环境配置】配置sdk
查看>>
accept()
查看>>
USB 2.0 Hub IP Core
查看>>