cookie是什么意思(一文带你超详细了解Cookie)( 二 )


cookie是什么意思(一文带你超详细了解Cookie)
文章图片


cookie是什么意思(一文带你超详细了解Cookie)
文章图片


回到顶部
Cookie 的使用
创建对象
cookie 是由服务端创建的 , 由浏览器端保存的 。所以创建对象我们应该在服务端创建 cookie,cookie 的创建方法:
1)创建一个 CookieServlet
在 Servlet 的 doPost()方法中编写如下代码:
//创建一个Cookie对象Cookie cookie = new Cookie("username", "zhangsan");//将Cookie对象放入response对象中response.addCookie(cookie);2)在浏览器中访问该 Servlet , 会发现响应头中出现如下内容: Set-Cookie: username=zhangsan
如此就成功的向浏览器设置了一个 Cookie , 当我们在刷新页面时会发现浏览器的请求头中出现如下代码:
Cookie: username=zhangsan
3)同样我们还可以同时设置多个 Cookie:
//创建一个Cookie对象Cookie cookie1 = new Cookie("username", "zhangsan"); Cookie cookie2 = new Cookie("password", "123456"); Cookie cookie3 = new Cookie("age", "20");//将Cookie对象放入response对象中response.addCookie(cookie1);response.addCookie(cookie2);response.addCookie(cookie3);浏览器会按以下形式发送 Cookie:
Cookie: username=zhangsan; password=123456; age=20
4)设置 Cookie 就是两个步骤: 创建 Cookie 对象
将 Cookie 对象加入到 response 中
设置 cookie
cookie 的有效时间
1)经过上边的介绍我们已经知道 Cookie 是存储在浏览器中的 , 但是可想而知一般情况下浏览器不可能永远保存一个Cookie , 一来是占用硬盘空间 , 再来一个 Cookie 可能只在某一时刻有用没必要长久保存 。
2) 所以我们还需要为 Cookie 设置一个有效时间 。
3)通过 Cookie 对象的 setMaxAge()可以设置 Cookie 的有效时间 。
其中 setMaxAge()接收一个 int 型的参数 , 来设置有效时间 。参数主要有一下四种情况:

  • 设置为 0 , setMaxAge(0)
Cookie 立即失效 , 下次浏览器发送请求将不会在携带该 Cookie
  • 设置大于 0 , setMaxAge(60)
表示有效的秒数 60 就代表 60 秒即 1 分钟 , 也就是 Cookie 在 1 分钟后失效 。
  • 设置小于 0 , setMaxAge(-1)
设置为负数表示当前会话有效 。也就是关闭浏览器后 Cookie 失效
  • 不设置
如果不设置失效时间 , 则默认当前会话有效 。
cookie 的路径
1) Cookie 的路径指告诉浏览器访问那些地址时该携带该 Cookie , 我们知道浏览器会保存很多不同网站的 Cookie , 比如百度的 Cookie , 新浪的 Cookie , 腾讯的 Cookie 等等 。那我们不可能访问百度的时候携带新浪的 Cookie , 也不可能访问每个网站时都带上所有的 Cookie 这是不现实的 , 所以往往我们还需要为 Cookie 设置一个 Path 属性 , 来告诉浏览器何时携带该Cookie 。
2)我们同过 Cookie 的 setPath()来设置路径 , 这个路径是由浏览器来解析的所以/代表服务器的根目录 。
如:设置为 /项目名/路径 cookie.setPath(“/项目名/路径”),这样设置只有访问“/项目名/路径”下的的资源才会携带 Cookie
如:/项目名/路径/1.jsp 、/项目名/路径/hello/2.jsp 等