是否打电话HttpServletRequest.getSession(boolean create)
导致会话的最后访问时间被更新?关于什么getId()
方法甚至调用getLastaccessedtime()
。简而言之,访问的标准是什么?HttpSession
导致getLastAccessedTime
要被更新
雄猫javadoc说:
“返回客户端上次发送与此会话关联的请求的时间,以自格林尼治标准时间 1970 年 1 月 1 日午夜以来的毫秒数,并以容器收到请求的时间标记。
您的应用程序执行的操作(例如获取或设置与会话关联的值)不会影响访问时间。"
因此,根据 javadoc 的说法,您问题的答案是(应该是):
Q:调用HttpServletRequest.getSession(boolean create)是否会导致Session的最后访问时间被更新?
答:根据 javadoc,不可以。(但见下文)
问:getId() 方法甚至调用 getLastaccessedtime() 怎么样?
A: No.
Q:简单来说,访问HttpSession的条件是什么导致getLastAccessedTime更新。
答:见上文。它记录最后一次客户端请求会话的时间。
请注意,实际行为可能取决于 Servlet 实现。例如,根据 Tomcat 7 源代码(7.0.39.2), a getSession(boolean)
call will更新访问时间:
-
当当前Session
尚未缓存在Request
并且请求的会话管理器能够将 sessionid 映射到有效的Session
, or
-
when create
is true
AND a Session
被建造。
目前尚不清楚场景 1. 是否真的会在应用程序代码的调用中发生,但场景 2. 肯定可以。这意味着创建Session
算作“访问”......这是有道理的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)