代码之家  ›  专栏  ›  技术社区  ›  Samo

为什么我的会话id在我的url中?

  •  3
  • Samo  · 技术社区  · 15 年前

    所以我在这里完成了构建基本roo应用程序的步骤: http://static.springsource.org/spring-roo/reference/html/beginning.html

    我启动了服务器并开始使用应用程序,忍不住注意到我的url中有一个“jsessionid”:

    http://localhost:8080/pizzashop/pizzas;jsessionid=0A8EA5D9E8665C8AC80F141C3818F6BA?form

    4 回复  |  直到 15 年前
        1
  •  4
  •   Community Mohan Dere    9 年前

    这是标准的JavaEE行为,由servlet容器指定和控制。这与春天无关。

    this previous question 找出它被创建的原因和时间,以及如何避免它。

        2
  •  1
  •   Amir Raminfar Hadi Rasouli    15 年前

    <c:url/> 标签。这样做的原因是因为客户机第一次访问页面时,服务器不知道客户机是否支持cookies。所以两者都有。下一次,由于它看到了cookie,实际上它将不再使用url,因为它知道cookie有效。

    有很多方法可以使它失效。如果您根本不使用会话,那么可以通过在context.xml中输入cookies=false来禁用cookies。这只会禁用会话的cookie,而不是常规cookie。然后可以使用urlrewrite来stip sessionid。

    希望能有所帮助。

        3
  •  0
  •   mezmo    15 年前

    你在使用什么应用服务器?我知道,至少在第一次调用时,Weblogic将始终执行URL编码的会话,以及基于cookie的会话,以查看客户端上是否启用了cookie。如果在下一次调用中找不到与URL会话id匹配的cookie,它将继续使用URL中的会话令牌。我知道当他们把我们的公司切换到使用Sharepoint进行网络爬行和搜索时,windows的web人员一直在抱怨这个问题,直到他们最终明白他们所要做的就是启用cookie会话支持。

        4
  •  0
  •   Paul Roub jim    8 年前

    在我的例子中,这是在应用程序部署在我的桌面上而不是使用https时发生的。在这种情况下 weblogic.xml cookie-secure 应该设置为false。否则cookie管理的会话ID只能在https上工作。

    <wls:cookie-secure>false</wls:cookie-secure>