首页 > 代码库 > cookie详解
cookie详解
cookie:
- 客户端创建,存在于客户端,不安全
- 用于跟踪用户的信息,保证不重要的信息,如地理位置,用户名
- cookie在服务端创建Cookie cook=new Cookie(name,value);再由response回写给浏览器response.addCookie(),浏览器发现set-cookie头后会自动写入硬盘,要得到cookie中的值,需要条用Request
- cookie的默认有效期是浏览器进程,浏览器关闭cookie就没了
- cookie的默认有效目录是产生cookie的Servlet的目录,访问其余目录不会带cookie
- cookie的作用,显示上次访问时间,将用户登录时的时间写入到cookie中
- 浏览器最多保存300个cookie,每个站点最多20个cookie,每个cookie的大小限制4k
- 每次访问(request)时都会带cookie(如果有)
- 将最大值时间设为0表删除cookie
- Cookie有效期是秒,session有效期是秒
cookie中的path写法
1. /day09/ 访问day09目录下的文件时带cookie
2. /day09 访问以day09开头的文件时带cookie,如day09xxx, 访问day09目录下的文件时也带这个cookie
3. day09/ 写法错误,必须以/开头,有set-cookie头,但浏览器拒收,不存储本地,浏览器进程中也没有
Cookie cookiename=new Cookie("name","value");
这个cookiename只是Cookie对象的名字,与存入的name,value无关,可以任意,甚至重复
一个网站只能保存20个cookie是指20个cookie文件,临时文件夹中可以查看
Cookie[] cookies=request.getCookies();得到的是所有Request带过来的cookie文件夹中的键值对
如:http://localhost:8080/day09/servlet/CookieDemo
有两个cookie文件:path分别是:/day09/cookie和/day09/servlet/,那么访问该Servlet时会把这两个cookie文件中的键值对带过来,存到数据中,如[name1=value1,name2=value2....]等
也就是说request.getCookies()得到的是所有cookie中保存的键值对
一个Response对象可以发送多个set-cookie头,也就是一个Response可以保存多个cookie,多次调用response.addCookie(cookie)也是可以的
cookie文件中可以保存多个键值对,多次调用Cookie cookiename=new Cookie("name","value");不会覆盖原来的数据,会直接在后面续写新的键值对
同一个cookie文件中的键值对的name值唯一,value值可以随意,同一cookie文件中存入相同name的键值对会覆盖原来的数据,不同cookie文件中的name值可以相同
cookie的默认有效目录是产生cookie的Servlet的目录,访问其余目录不会带cookie
每个cookie文件大小4K
每个键值对都是一个cookie对象,如果想删除一个键值对,只需遍历cookie[]找到该对象,然后调用setMaxAge方法就行了,最后在写回就ok
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。