
String sessionId=requestgetSession()getId();
首先要获得request对象,然后调用getSession()方法。
Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的 *** 作空间。
具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。
需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的 *** 作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。
session的工作原理
(1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。
(2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。
(3)当执行PHP脚本时,通过使用session_register()函数注册session变量。
(4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过phpini文件中的sessionsave_path指定,下次浏览网页时可以加载使用。
我们可以看到这个框架图,我们的整个交互都是与security Manager做交互,而这里面就有一个Session Manager的管理器,Shiro当然内置了实现,我们也可以根据接口拓展其功能,那么下面,我们就来了解一下shiro中关于Session管理的部分内容
这是一个管理器实现类,是shiro提供的可用的结构。
上面两个图是该SessionManager的方法,当然,这些方法并不是全部,因为这个默认的管理器其实继承于其他的一些结构,下面是整个sessionManager的UML图
有关这部分的源码分析,我会在下次有精力的时候用一篇文章更新
获取当前subject的主机地址,该地址是通过HostAuthenticationTokengetHost()提供的。
获取/设置当前Session的过期时间;如果不设置是默认的会话管理器的全局过期时间。
获取会话的启动时间和最后访问时间;如果是JavaSE应用需要自己定期调用sessiontouch()去更新最后访问时间;如果是web应用,每次进入ShiroFilter都会自动调用sessiontouch()来更新最后访问时间。
更新会话最后访问时间及销毁会话;当Subjectlogout()时会自动调用stop方法来销毁会话的。如果在web中,调用javaxservlet>
以上就是关于如何获取SessionID全部的内容,包括:如何获取SessionID、Shiro Session管理—— *** 作session、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)