session学习

Posted yamiya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了session学习相关的知识,希望对你有一定的参考价值。

session的意思就是会话,这里和cookie一样也是一种会话跟踪技术,与cookie存放在本地不同session是存放在服务器当中的。

1)seesion可以跨请求,HttpSession当中具有三个方法,对session当中的数据进行操作。

增加:session.setAttribute

读取:session.getAttribute

删除:session.removeAttribute 

对于request.getSession();方法,如果没有session则会自动创建session,可以通过设置request.getSession(false);来只读不建。

2)一个会话对应一个session,工作原理:

①写入session列表

服务器对session是以map的形式管理的,这个map被称为session列表。该map的key是一个32位长度的随机串,被称为JSessionID,value则是session对象的引用(存在于堆当中)。

当用户第一次提交请求时,服务器执行到request.getSession()方法后会自动生成一个Map.Entry对象,key为根据算法形成的JSessionID,value则是新创建的session对象。

②服务器生产并发送cookie

将seesion信息写入session列表后,系统还会将"JSessionID"作为name,JSessionID的值作为value,以cookie的形式存放到响应头中,发送到客户端。

③客户端接收并发送cookie

客户端接收到这个cookie之后将其存放到缓存当中,当用户提交第二次请求时,会将缓存当中的这个cookie随着请求头,一起发送到服务器。

④从session列表中查询

服务端从请求中读取到客户端发送来的cookie,并根据JSessionID的值从session列表中查询相应key对应的session对象,再去session域属性进行读写操作。

3)session的失效

可以设置session的失效时间,应用于在某个网页长时间没有操作会弹出重新登录等。

session的失效标志着会话的结束。对于用户来说关闭浏览器标志着会话的结束,但是session的失效才标志着会话的结束。

 

以上是关于session学习的主要内容,如果未能解决你的问题,请参考以下文章

session 学习

PHP学习笔记:删除与销毁session

Koa2学习使用session

JavaWeb学习——session总结

jsp学习笔记 - 内置对象 session

TensorFlow 学习—— tf Graph tf Session 与 tf Session run