会话状态管理

一.Session

特点:保存在服务器端 缺点:占用服务器资源过多

运行原理
浏览器第一次发送请求时,服务器新建一个session,生成一个JsessionId,在服务器响应的时候会将JsessionId响应给浏览器,浏览器会保存jsessionid,下一次浏览器进行请求时,会将jsessionid一同发送给服务器,服务器根据jsessionid匹配session

session的创建与删除
创建
HttpServletRequest.getSession();

Session中的方法
setAttribute()
getAttribute()
removeAttribute()
getAttributeNames()

二.cookie

当浏览器第一次发送请求到web服务器,服务器收到请求之后处理请求并且创建cookie,在响应浏览器的时候将cookie响应给浏览器,浏览器收到cookie后将其保存,下一次请求的时候将cookie回传给web服务器,服务器通过比较cookie判断是否是同一个会话

一.创建cookie
Cookie cookie = new Cookie(“key”,“value”); //不支持中文

response.addCookie(cookie);//将cookie响应到浏览器上

二.Cookie的传送过程示意图
会话状态管理

三.cookie的方法
(1)获取cookie名 : cookie.getName();
(2)获取cookie值 : cookie.getValue();
(3)设置cookie值 : cookie.setValue();
(4)设置最大时效: cookie.setMaxAge(); //以秒为单位,默认为-1是会话级别的cookie保存到浏览器缓存
当设置为0时,清除cookie, 当>0时保存到磁盘中