session

1.d定义:session是一次浏览器和服务器的会话对象,session也是缓存,是内容,是块数据。因为我们访问网页使用的HTTP协议是无状态的,没有任何关系,快速的。所以我们如果想要关联客户的信息就需要一种办法能够把客户的信息联系在一起,这个方法就是cookie。但是cookie是把信息储存在用户本地,它在一个域名下是全局的。不安全又很容易的被修改。所以session就出现了,它储存在服务器上,通过它关联同一个用户的信息,这样用户在访问不同的页面的时候我们就知道对方是同一个人,而不需要每次无状态的访问都需要用户登录/关联了。默认情况下一个浏览器独占一个session对象,然后服务器通过sessionID匹配用户。

2.Session和Cookie的主要区别

Cookie是把用户的数据写给用户的浏览器。

Session技术把用户的数据写到用户独占的session中。
Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。

3.session的会话过程:HTTP请求一个页面后(第一次访问时,服务器会创建一个新的sesion,并且把session的Id以cookie的形式发送给客户端浏览器),如果用到开启session,会去读cookie中的PHPSESSID是否有,如果没有,则会新生成一个session_id,先存入cookie中的PHPSESSID中,再生成一个sess_前缀文件。当有写入$_SESSION的时候,就会往sess_文件里序列化写入数据。当读取的session变量的时候,先会读取cookie中的PHPSESSID,获得session_id,然后再去找这个sess_sessionid文件,来获取对应的数据。由于默认的PHPSESSID是临时的会话,在浏览器关闭后,会消失,所以,我们重新访问的时候,会新生成session_id和sess_这个文件。

4、session的获取:

session其实就是一个Map,键=值对,通过session.getAttribute(“name”);获得session中设置的参数:HttpSession session = request.getSession();

储存:session.setAttribute("username",user.getName());

销毁:session.removeAttribute("username") session.invalidate();

匹配是否新的:session.isNew()

获取id:session.getId();

 

posted @ 2019-04-01 10:04  Mr_kai先生yo  阅读(120)  评论(0编辑  收藏  举报