Tomcat修改JSESSIONID和作用路径path

991 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、JSESSIONID作用

Tomcat在没有做任何特殊配置的情况下,其session的CookieKey为JSESSIONID (JSESSIONID 是通过浏览器Cookie 来存储和传递的)。

JSESSIONID如果冲突了,就要改变JSESSIONID这个key,但是这个修改不在代码中修改,而是在Tomcat中修改。

二、修改JSESSIONID的key

修改Tomcat的conf/server.xml 文件,修改接近文件最下面的Context元素,如果没有添加这个标签,位置如下:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
      <Context path="/h5" docBase="h5" reloadable="true" sessionCookiePath="/" sessionCookieName="JSESSIONID_H5"/>
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
<Context path="/h5" docBase="h5" reloadable="true" sessionCookiePath="/" sessionCookieName="JSESSIONID_H5"/>

设置好之后,此时的系统的CookieKey 就是JSESSIONID_H5

这里还设置了path,这里的JSESSIONID_H5存在/h5 这个路径下面,如果访问项目地址是xxx.com/h6/index.action 这样的,那么CookieKey 就无法获取,需要设置path作用路劲, 有3种方式可以设置:

  1. 可以直接设置path=h6
  2. 可以设置path=/
  3. 还可以不用设置path,这样 tomcat 会自动更具项目名称进行设置