今天群里有朋友说要修改tomcat的session cookie name,我翻了一下tomcat各个版本的源码(tomcat4已经没人用了,所以除外),帮朋友解决了问题,现总结了一下
修改后效果
1、tomcat5修改方法
在启动项中增加org.apache.catalina.SESSION_COOKIE_NAME参数
linux
JAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname‘
win
set JAVA_OPTS=”-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname“
2、tomcat6和tomcat7修改方法相同
在Context容器标签上增加sessionCookieName参数
<Context path=”/” docBase=”webapp” reloadable=”false” sessionCookieName=”yoursessionname”></Context>
3、为啥这样就好用呢?
扫描二维码关注公众号,回复:
194340 查看本文章
![](/qrcode.jpg)
tomcat5时增加参数对所有Context生效,影响甚大,所以到以后的版本就仅针对Context设置了
tomcat5源码如下 public final class Globals /** * The name of the cookie used to pass the session identifier back * and forth with the client. */ public static final String SESSION_COOKIE_NAME = System.getProperty(“org.apache.catalina.SESSION_COOKIE_NAME”, “JSESSIONID”); tomcat6和tomcat7的源码差不多,如下 public class StandardContext ….省略若干 /** * The name to use for session cookies. <code>null</code> indicates that * the name is controlled by the application. */ private String sessionCookieName; /** * Gets the name to use for session cookies. * * @return The value of the default session cookie name or null if not * specified */ public String getSessionCookieName() { return sessionCookieName; } /** * Sets the name to use for session cookies. Overrides any setting that * may be specified by the application. * * @param sessionCookieName The name to use */ public void setSessionCookieName(String sessionCookieName) { String oldSessionCookieName = this.sessionCookieName; this.sessionCookieName = sessionCookieName; support.firePropertyChange(“sessionCookieName”, oldSessionCookieName, sessionCookieName); }PS:需要修改其它参数可以直接翻看源代码或查看tomcat在线文档