设置cookie
1 cookie的有效时间
1)经过上边的介绍我们已经知道Cookie是存储在浏览器中的,但是可想而知一般情况下浏览器不可能永远保存一个Cookie,一来是占用硬盘空间,再来一个Cookie可能只在某一时刻有用没必要长久保存。
- 所以我们还需要为Cookie设置一个有效时间。
3)通过Cookie对象的setMaxAge()可以设置Cookie的有效时间。
其中setMaxAge()接收一个int型的参数,来设置有效时间。参数主要有一下四种情况:
- 设置为0,setMaxAge(0)
Cookie立即失效,下次浏览器发送请求将不会在携带该Cookie
- 设置大于0,setMaxAge(60)
表示有效的秒数60就代表60秒即1分钟,也就是Cookie在1分钟后失效。
- 设置小于0,setMaxAge(-1)
设置为负数表示当前会话有效。也就是关闭浏览器后Cookie失效
- 不设置
如果不设置失效时间,则默认当前会话有效。
2.2.2 cookie的路径
1)Cookie的路径指告诉浏览器访问那些地址时该携带该Cookie,我们知道浏览器会保存很多不同网站的Cookie,比如百度的Cookie,新浪的Cookie,腾讯的Cookie等等。那我们不可能访问百度的时候携带新浪的Cookie,也不可能访问每个网站时都带上所有的Cookie这是不现实的,所以往往我们还需要为Cookie设置一个Path属性,来告诉浏览器何时携带该Cookie。
2)我们同过Cookie的setPath()来设置路径,这个路径是由浏览器来解析的所以/代表服务器的根目录。
如:
- 设置为 /项目名/路径 à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”); |
想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训课程视频供广大学员下载学习
上一篇: Java培训只Cookie的使用创建对象
下一篇: Java培训JavaWeb之读取cookie