gpt4 book ai didi

java - 从tomcat的context.xml中的ServletContext获取sessionCookieName

转载 作者:行者123 更新时间:2023-11-28 22:28:44 28 4
gpt4 key购买 nike

如何获取当前请求的 session 名称?

tomcat session 的默认名称是“jsessionid”。鉴于我已经修改了 tomcat 的 context.xml 中的 sessionCookieName 配置,如下所示,以便在同一台服务器上运行多个 tomcat 实例

<Context sessionCookieName="appSessionId">

<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
</Context>

我的网络应用程序需要知道当前请求的 session 名称是什么。我试过如:

request.getServletContext().getSessionCookieConfig().getName()
request.getSession().getServletContext().getSessionCookieConfig().getName()

但是它们都是null。

我的pom.xml如下

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>8.0.23</version>
</dependency>

我用的tomcat也是8.0.23的,欢迎大家帮忙。

最佳答案

这非常令人困惑,因为据我所知,以下内容总是返回 null,所以我不确定它们的意义何在!

request.getServletContext().getSessionCookieConfig().getName()
request.getSession().getServletContext().getSessionCookieConfig().getName()

你需要做的:

SessionConfig.getSessionCookieName(request.getContext())

关于java - 从tomcat的context.xml中的ServletContext获取sessionCookieName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31263868/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com