在Tomcat中支持没有Cookie的会话

Zak*_*raj 13 java cookies session tomcat

我目前正在运行具有以下属性的应用程序:

  • 基于Java的Spring和Acegi
  • 在Tomcat上运行5

我需要能够支持没有 cookie的用户会话.有人可以指出我正确的方向.

谢谢.

Zak*_*raj 20

这个问题的完整答案是你所有答案的组合,所以我要总结一下:

  1. 无需在context.xml文件中设置cookies ="false".理想的功能是让tomcat使用它基于url的会话标识,如果用户不支持cookie,默认情况下将使用该标识.

  2. 当用户未启用cookie时,tomcat将通过请求的url中的"JSESSIONID"参数来标识会话.几个示例网址如下所示 http://www.myurl.com;jsessionid=123456AFGT3 http://www.myurl.com;jsessionid=123456AFGT3?param1=value&param2=value2 请注意会话ID不是url查询字符串的一部分(这是j2ee标准)

  3. 为了确保将jsessionid参数附加到您的所有请求URL,您不能使用纯url引用.例如,在JSTL中,您必须使用<c:url>.如果有必要,servlet引擎将自动将jsessionid附加到url.这是一个例子:

    <% - 这很糟糕: - %> <a href ="page.html">链接</ a>

    <% - 这很好: - %> <a href ="<c:url value ='page.html'/>">链接</ a>


Lok*_*oki 5

参见http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

在文件META-INF / context.xml中,

<?xml version='1.0' encoding='UTF-8'?>
<Context path='/myApplicationContext' cookies='false'>
  <!-- other settings -->
</Context>
Run Code Online (Sandbox Code Playgroud)