大家都知道,浏览器与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呢?看代码:
Cookie c = new Cookie("username","zhangsan");
c.setMaxAge(900000000);//设置cookie的存活时间,即该cookie会在多少秒后失效,负值表示当浏览器关闭时,Cookie将会被删除。零值则是要删除该Cookie。单位:秒。如果不设置那么关闭浏览器的时候cookie会自动释放
c.setPath("/");//任何页面都可以得到此Cookie
httpServletResponse.addCookie(c);
如何调用呢?
Cookie[] cc = httpServletRequest.getCookies();
for(int i=0;i<cc.length;i++){
System.out.println("cooikeValue--"+((Cookie)cc[i]).getValue());
}
如何删除呢?
Cookie deleteNewCookie=new Cookie("newcookie",null);
deleteNewCookie.setMaxAge(0);//0表示删除。
deleteNewCookie.setPath("/");
httpServletResponse.addCookie(deleteNewCookie);