在Tomcat中支持没有Cookie的会话

2022-09-04 00:43:37

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

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

我需要能够在没有 Cookie 的情况下支持用户会话。有人可以给我指出正确的方向吗?

谢谢。


答案 1

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

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

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

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

    <%--这很糟糕:--%> <一个href=“page.html”>link< / a>

    <%--这很好:--%> <一个href=“< c:url value='page.html'/>”>link< / a>


答案 2

请参阅 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>

推荐