session概述
什么是session?
session称为会话控制。session对象存储特定用户会话所需的属性及配置信息。
有什么特点
- 是以键值对的形式存储数据
- 每个session都有自己的存活时间(默认是30分钟)
- 每一个session的JSESSIONID是不同的
session的原理
浏览器第一次访问服务器时,服务器会查看Cookie中是否有sessionID,若有则获取,若没有就会创建一个sessionid保存在cookie中。
session存取数据
setAttribute(String key,Object value);
getAttribute(String key);
往session中存值
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建一个session,浏览器第一层次访问时,会新建,下次访问时,会查看sessionID
HttpSession session = request.getSession();
//获取sessionid
String sessionId = session.getId();
//将值存入session中
session.setAttribute("jack","rose");
}
向session中获取值
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建session对象
HttpSession session = request.getSession();
//通过key获取到session数据
String attribute = (String) session.getAttribute("jack");
System.out.println(attribute);
}
清除session
session.invalidate() 清除session