Cookie的来历与作用
Cookie是什么
Cookie技术是由Netscape公司最早开始使用
Cookie是Web服务器通过浏览器保存在WWW用户端硬盘上的一个文本文件,这个文本文件中包含了文本信息.
文本信息的内容以"名/值"对(key/value)的形式进行储存.
可以让Web开发者通过程序读写这个文本文件.
XP中保存Cookie的目录是"C:/Documents and Settings/用户名/Cookies"
Cookie的作用
解决浏览器用户与Web服务器之间无状态通信
Cookie的典型应用
1.记住密码,两周内不用登录
2.定制个性化页面,保存此设置
3.记录用户访问动作,比如最近浏览过的商品
Cookie编程
生成Cookie对象
java.util.Date date = new java.util.Date();
Cookie c = new Cookie("lastVisited", date.toString());
c.setMaxAge(60*60*24); //设置有效期为一天
c.setPath("/");
c.setDomain(".deng.com");
response.addCookie(c); //发送Cookie对象,由服务器发送信息, 保存到客户端的硬盘上
读取Cookie
Cookie[] cookies = request.getCookies();
Cookie c = null;
if(cookies != null){
for(int i=0; i<cookies.length; i++){
c = cookies[i];
out.println("cookie name:"+c.getName());
out.println("cookie value:"+c.getValue());
}
}
修改Cookie
Cookie[] cookie = request.getCookies();
Cookie c = null;
for(int i = 0; i <cookie.length; i++){
c = cookie[i];
if(c.getName().equals("lastVisited")){
c.setValue("2007-10-30");
c.setMaxAge("60*60*24");
response.addCookie(c);
}
}
删除Cookie, 将其MaxAge()设为0,就失效了
Cookie[] cookie = request.getCookies();
Cookie c = null ;
for(int i = 0 ; i < cookie.length; i++){
if(c.getName().equals("lastVisited")){
c..setMaxAge(0);
response.addCookie();
}
}
使用Cookie的注意事项
Cookie的大小和数量是有限制的
Cookie在个人硬盘上所保存的文本信息是以明文格式进行保存的,没有任何的加密措施.
浏览器用户可以设定不使用Cookie
用户登录例子:
从表单中提交数据, 在SetCookie.java中读取数据,并设置Cookie的值.
在GetCookie.java中读取Cookie的值