在tomcat的配置中,会话cookie的名称从JSESSIONID更改为其他值。我该如何在servlet中检索此cookie的名称或cookie对象?祝好!
Servlet API的第3个版本有SessionCookieConfig#getName。
您可以从ServletContext获取此对象。
SessionCookieConfig#getName()
方法只会返回在 web.xml 的 <cookie-config>
元素中设置的名称。如果没有显式设置,则使用默认值(JSESSIONID)用于 cookie,但让人困惑的是,getName()
方法将返回 null,而不是 "JSESSIONID"。我已经在 Tomcat 8.5 和 9 上进行了测试。因此,如果您的代码需要知道会话 cookie 的名称,仅依赖 SessionCookieConfig#getName
是不够的,您必须添加逻辑以防它返回 null,并且我还没有找到给出默认值的常量,所以您需要硬编码。 - Marcus Junius BrutusSessionCookieConfig#getName()
返回null
。看起来像这样:<session-config>...<cookie-config><name>NAMEHERE</name>...</cookie-config>...</session-config>
。 - DWR