Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpSession.getId()的唯一性如何?_Java_Google App Engine_Session_Servlets_Httpsession - Fatal编程技术网

Java HttpSession.getId()的唯一性如何?

Java HttpSession.getId()的唯一性如何?,java,google-app-engine,session,servlets,httpsession,Java,Google App Engine,Session,Servlets,Httpsession,HttpSession.getId()返回的值是否保证在整个时间段内都是唯一的,或者仅在所有活动会话中是唯一的 换句话说,我可以将其用作会话日志条目的键(哪个用户何时登录以及登录多长时间) 如果getId是特定于实现的(我猜是这样的,因为J2EE规范没有提到这个问题),那么在Google App Engine上如何处理它呢?据我所知,会话ID只有在不重新启动Web服务器的情况下才是唯一的。因此,会话ID在Web服务器的生命周期中是唯一的 在ApacheTomcat中,您可以查看以了解ID是如何生

HttpSession.getId()
返回的值是否保证在整个时间段内都是唯一的,或者仅在所有活动会话中是唯一的

换句话说,我可以将其用作会话日志条目的键(哪个用户何时登录以及登录多长时间)


如果
getId
是特定于实现的(我猜是这样的,因为J2EE规范没有提到这个问题),那么在Google App Engine上如何处理它呢?

据我所知,会话ID只有在不重新启动Web服务器的情况下才是唯一的。因此,会话ID在Web服务器的生命周期中是唯一的

在ApacheTomcat中,您可以查看以了解ID是如何生成的。但是要注意,在Tomcat中,生成的ID仅在同一上下文中是唯一的


希望有帮助

是的,这取决于。与任何接口中的任何方法一样:-)。由程序员来确保id是唯一的


如果您与您一起使用,则100%确定您的id是唯一的。

问题是关于Google App Engine。GAE基于Jetty而非Tomcat sou,您不能使用ManagerBase.createSession(java.lang.String)。会话在数据存储(或memcached)中分布和持久化。它通过一个cookie(称为JSESSONID)进行跟踪,该cookie由servlet容器管理。在数据存储中,有一类实体_ah_SESSION,其id为SESSION id,前缀为“_ahs”。当前_ah_会话实体不会自动删除。
因此答案是:目前,GAE上的会话id在不同时间是唯一的

问题是关于谷歌应用程序引擎。GAE基于Jetty而不是Tomcat。在GAE中,会话被分发并保存在数据库中,并且在服务器重新启动后保持不变。问题是关于Google应用程序引擎的。GAE基于Jetty而不是Tomcat。在GAE中,会话在数据库中分布和持久化,并在服务器重新启动后保持不变。