cookie:浏览器端会话技术
cookie怎么用?
1.添加cookie到浏览器
1>新建一个cookie(键值对)
Cookie cookie = new Cookie(String key,String value);
2>将cookie 添加到响应中
response.addCookie(cookie);
2.浏览器发送cookie到服务器,如何取
1>获得所有浏览器发送的cookie
Cookie[] cookies = request.getCookies();
2>cookie的常用方法:
getName():获取cookie的key(名称)
getValue:获取指定cookie的值
cookie的一些细节:
1.默认关闭浏览器,cookie就被删除,有效时间-1
2.有效时间的设置
1>设置一个正数,标示最大有效时间.单位是秒
//cookie.setMaxAge(60*60);
2>设置为-1 , 就是相当于默认有效时间, 浏览器关闭就消失.
//cookie.setMaxAge(-1);
3> 标示cookie的有效时间为0.发送到浏览器就消失了.
//利用有效时间为0 这件事,我们可以做删除cookie的操作.
// 因为同一个路径 ,不能存在相同的cookie(键相同).
// 我们可以通过覆盖的方式,设置有效时间为0. 删除cookie
cookie.setMaxAge(0);
3.setPath(String path):设置cookie的路径.
当我们访问的路径中包含此cookie的path,则携带
默认路径:
访问serlvet的路径,从"/项目名称"开始,到最后一个"/"结束
例如:
访问的serlvet路径:
/day11/a/b/hello
默认路径为:
/day11/a/b
手动设置路径:以"/项目名"开始,以"/"结尾;
注意:
cookie不能跨浏览器
cookie中不支持中文
session:服务器端会话技术
原理:浏览器第一次访问服务器,服务器会在内存中开辟一个空间(session),并把session对应的ID发送给浏览器.
那么下次浏览器再去访问服务器,会把sessionID 交给服务器,服务器通过sessionID 找到刚才开辟的空间.
获取session:HttpSession session = request.getSession();
操作session:
session.setAttribute(arg0, arg1)
session.getAttribute(arg0)
session.removeAttribute(arg0)
session.getAttributeNames()
生命周期:
创建:第一次调用request.getsession()创建
销毁:
服务器非正常关闭
session超时
默认时间超时:30分钟 web.xml有配置
手动设置超时:setMaxInactiveInterval(int 秒) 了解
手动干掉session
session.invalidate()