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

阅读器会资源网按以下情势发送 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 等
如果不设置,默认会在拜访“/项目名”下的资源时携带如:“/项目名/index.jsp” 、 “/项目名/hello/index.jsp”
Cookie cookie = new Cookie("username", "abc"); cookie.setMaxAge(60*60*24);//秒为单位,一天后过期cookie.setPath(getServletContext().getContextPath()+"/"); resp.addCookie(cookie); resp.sendRedirect(getServletContext().getContextPath()+"/index.jsp");推举博客
程序员写代码之外,如何再赚一份工资?
读取 cookie
通过以上步骤,我们将 cookie 保留到了阅读器端 。那么我们如何读取 cookie 中的值呢 。剖析:
cookie 被设置进入阅读器后,每次要求都会携带 cookie 的值,所以我们须要从 request 中取出 cookie 进行解析 。
//从request中获取所有cookieCookie[] cookies = request.getCookies();//遍历cookiefor(Cookie c:cookies){String cName = c.getName();//获取cookie名String cValue = c.getValue();//获取cookie值System.out.println("cookie:" + cName + "=" +cValue);}【一文带你超详细了解Cookie cookie是什么意思】


推荐阅读