Java tomcat中的空会话路径是什么?
我前一天读过ApacheTomcat文档,对Java tomcat中的空会话路径是什么?,java,tomcat,webserver,tomcat6,connector,Java,Tomcat,Webserver,Tomcat6,Connector,我前一天读过ApacheTomcat文档,对emptySessionPath感到非常困惑。据我所知,如果设置为true,则emptySessionPath存储在web应用程序的根文件夹中。请给出术语emptySessionPath的正确定义,如果设置为true和false会发生什么 请引导我。提前谢谢。您可能知道,会话通常由cookie维护。cookie有两个值,它们决定浏览器是否应该为某个请求返回cookieDomain和cookiePath。cookiePath必须与请求的路径匹配 请求
emptySessionPath
感到非常困惑。据我所知,如果设置为true,则emptySessionPath
存储在web应用程序的根文件夹中。请给出术语emptySessionPath
的正确定义,如果设置为true和false会发生什么
请引导我。提前谢谢。您可能知道,会话通常由cookie维护。cookie有两个值,它们决定浏览器是否应该为某个请求返回cookieDomain和cookiePath。cookiePath必须与请求的路径匹配 请求
/some/request/for/this.html
Cookie将返回Cookie路径:
/
/some
/some/request
/other
但不适用于cookie路径:
/
/some
/some/request
/other
根据规范,会话不会在不同的web应用程序之间共享,因此,如果在/foo
下部署了web应用程序foo.war
,则会话cookie路径默认设置为/foo
它似乎是连接器上的受保护变量。我还没有读过代码——但我想这与Tomcat的单点登录或共享会话有关,您可以登录到一个上下文并在所有上下文中进行身份验证——在这种情况下,会话cookie的cookie路径必须是
/
emptySessionPath字段仅说明所有cookie是否应存储在根URL路径/
(如果emptySessionPath=true
)中(否则)
这是由Apache的连接器使用的。请参阅详细信息(这是针对AJP连接器,它是Connnector对象的一部分)
这基本上意味着:
如果在中启用了emptySessionPath
tomcat,JSESSIONID
cookie是
写入根“/”路径。这
意味着无论你在什么网络应用上
将使用相同的cookie。每个网络应用程序
将把cookie的值重新写入
保留该webapp的会话id,然后
他们都不一样
当启用此选项并启用servlet时
使用不同的Web应用程序、请求
从同一用户到不同用户
servlet最终将覆盖
cookie,这样当servlet
再次与它交互将创建
一个新的会话并将其释放
已经建立了
如果未设置emptySessionPath
,则
浏览器中有多个cookie,
每个Web应用程序一个(当前无一个)
根),因此不同的Web应用程序不会
把彼此的曲奇写成
上面
JSESSIONID
是您的Web应用程序的ID会话。请看完整的解释
更新:有关使用情况的信息有些过时-有关如何为最近的tomcat设置会话路径的最新信息,请参阅。如果emptySessionPath设置为true,它将从JSSessionID cookie中删除上下文路径。它将cookie路径设置为/。此属性可用于跨应用程序自动验证机制。以防万一,对于web应用程序3.0版,cookie配置是标准化的,因此与webapp 3.0中AJP的emptySessionPath等效的是:
/
正确
嗨,elite,请进一步解释如果未设置emptysessionpath会发生什么?@Muneeswaran Balasubramanian,如果您阅读我的第一个链接,默认值为
false
如果未设置。另外,请阅读被阻止部分的最后一段,它解释了是否未设置emptySessionPath
。是的。我无法理解你在被阻止部分的最后一段,所以我只要求你进一步解释。在我的申请中,我在会话过期后发送了请求。如果该请求是http请求,则工作正常。但是如果该请求是Ajax请求,url已更改,但页面未加载。但在我设置emptysessionpath后,它是真的。一切正常。那么这两者之间会发生什么?请解释一下。Ajax不会重新加载页面,因为您正在对服务器进行异步调用,因此它从不重新加载页面。我真的无法解释为什么设置了emptySessionPath
后一切都能正常工作。