J2EE中设置和获取cookie

什么是cookies?
大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于C://windows//cookies的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。
cookies给网站和用户带来的好处非常多:
1、Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径
2、Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告
3、Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点
4、Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务

Cookie方法详解:
String getComment() 返回cookie中注释,如果没有注释的话将返回空值。
String getDomain() 返回cookie中Cookie使用的域名,使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com)。
int getMaxAge() 返回Cookie过期之前的最大时间(即Cookie的生命周期),以秒计算。
String getName() 返回Cookie的名字。名字和值是我们始终关心的两个部分。
String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。
boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
String getValue() 返回Cookie的值。
int getVersion() 返回Cookie所遵从的协议版本。
void setComment(String purpose) 设置cookie中注释。
void setDomain(String pattern) 设置cookie中Cookie适用的域名
void setMaxAge(int expiry) 以秒计算,设置Cookie过期时间(即设置Cookie的生命值)。
void setPath(String uri) 指定Cookie适用的路径。
void setSecure(boolean flag) 指出浏览器使用的安全协议,例如HTTPS或SSL。
void setValue(String newValue) 为cookie设置一个新的值。
void setVersion(int v) 设置Cookie所遵从的协议版本。
Cookie操作:
添加Cookie:

Map<String, String> map = new HashMap<String, String>();
map.put("name", "niko");
map.put("pwd", "'123456'");
JSONArray j = JSONArray.fromObject(map);
Cookie cookie = new Cookie("user",j.toString());
cookie.setMaxAge(5);//设置存活时间为5秒
response.addCookie(cookie);
获取Cookie:若要修改Cookie,可新建Cookie对象,name和已存在Cookie对象相同时,将该Cookie对象添加到response中,后则自动覆盖前者,实现修改;也可以通过把获取到的Cookie对象通过Cookie的方法对属性值进行设置,然后重新添加到response中,实现修改。
Cookie[] cookies = request.getCookies();
String userinfo = null;
for (Cookie ck : cookies) {
	if("user".equals(ck.getName())){
		userinfo = ck.getValue();
	}
}
删除Cookie:删除Cookie的方法很简单,只需要用setMaxAge(0),将Cookie对象的存活寿命设置为0即为删除Cookie。
Cookie[] cookies = request.getCookies();
for (Cookie ck : cookies) {
	if("user".equals(ck.getName()))
	ck.setMaxAge(0);
	response.addCookie(ck);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值