学习Session之前,需要先了解一下Cookie。
Cookie
是存放在浏览器缓存里的一段信息。它对应着一个主机名。
我们选取本地浏览器的百度网址留下的Cookie,如下
名称 bdime 内容 0 域名 .www.baidu.com 路径 / 为何发送 各种连接 Accessible to script: 是 创建时间 2021年4月9日星期五 上午8:22:36 到期时间 2051年4月2日星期日 上午8:21:08
这些内容会在我们请求该网站的某些连接时,附在http报头中发送过去,以此来实现记录参数,保存账户密码自动登录等等功能。但这些内容是用户可见的,对于服务器的某些应用来说并不安全,并不希望某些信息被用户知道,因此产生了Session技术。
Session
大概分为两部分
第一部分是服务器为Session分配一个编号,将其编号写入Cookie存放本地,但浏览器关闭时会被清除。下面是存储在Cookie的样子
JSESSIONID:090DDE0D4F2D5994136ABF761C2CF6DB
第二部分是服务器自身维护一个map表,将Session编号与Session的存储地址对应起来。
Session的用法:
HttpSession session=request.getSession();
session.setAttribute("name","value");
数据存储方式与Cookie很像。
取数据时:
session.getAttribute("name");