cookie和session笔记
cookie简单使用:
cookie是服务器发送给浏览器的数据, 浏览器管理所有的cookie.
当一个Servlet在处理响应时, 向客户端发送了cookie, 那么浏览器在下次访问这个
Servlet将带着cookie发送一个请求,Servlet可以使用request.getCookies()方法得到浏览器发送过来的所有
cookie然后检索得到相应的cookie.
cookie由名称,值,过期时间,和路径组成.
//一个简单的cookie
Cookie sess = new Cookie("name", "cookie");
cookie的setMaxAge()方法设置这个cookie保存时间(单位 : 秒),在有效的时间内,浏览器访问时都会带着这个cookie去请求。
setPath()方法设置这个cookie的有效路径, 默认路径是发送这个cookie的Serlvet的路径相同。
//新建一个cookie
Cookie sess = new Cookie("name", "cookie");
//设置cookie的有效时间60秒
sess.setMaxAge(60);
//设置cookie的有效路径
sess.setPath("/servlet_session/");
使用response.addCookie(Cookie c) 方法将一个cookie添加进响应头.
session的使用
在Servlet中使用session,要调用request.getSession()方法,如果此次会话已经有session那么这个方法会返回已经的创建的session
否则会自动创建一个session对象表示此次会话,request.getSession(boolean b)是一个重载方法,它只是查找已创建的session对象如果没有找到
它不会创建一个session对象。
session的实现是基于cookie的, 每一个session的都有一个id, 调用request.getSession()时,假设现在有一个名子为JSESSIONID的cookie,这个cookie
就保存了当前会话的sessionid浏览器在发送请求时会将这个cookie一起发送给服务器,服务器通过JSESSIONID的值查找session,如果浏览没有发送JSESSIONID cookie时或者JSESSIONID中的值表示的session找不到时request.getSession()方法就会创建一个新的
session对象,并将这个session的id保存在JSESSIONID中, 发送给浏览器.