【问题标题】:JSP still creates jsessionID with session=falseJSP 仍然使用 session=false 创建 jsessionID
【发布时间】:2013-06-28 12:49:53
【问题描述】:

我有一个 jsp 页面,它返回显示在 HTTP 页面上的内容,我的应用程序的其余部分是 HTTPS。

现在,当我在 HTTP 页面上从 HTTPS 浏览到我的 jsp 时,我丢失了我的 cookie(来自 HTTPS 的 cookie 是安全的,在 HTTP 页面中是不允许的)。然后我在我的 jsp 页面标题中添加了 session=false,但是当我调用我的 jsp 时,我仍然收到一个 JSESSIONID,我想我不想要那个。

因为如果来自 http 页面的 jsessionid 与来自 https 的 jsessionid 不同,我就会退出。

那么如何防止 JSP 生成 JSESSIONID?

ps:我使用的是tomcat 6。

【问题讨论】:

    标签: jsp session tomcat


    【解决方案1】:

    请确认您也已将<@page session="false"> 应用于所有包含的jsps。如果任何包含的 jsp 没有相同的页面属性,父 jsp 仍然会创建会话。

    【讨论】:

      【解决方案2】:

      <@page session="false"> 指令将在您访问 JSP 页面时消除 HTTP 会话的自动创建。 详情见: http://docs.oracle.com/cd/A97688_16/generic.903/bp/j2ee.htm#1008677

      澄清:如果您访问创建 HTTP 会话的其他页面(或资源),然后使用指令 <@page session="false"> 访问该页面,则该会话不会被破坏。

      【讨论】:

      • 已经尝试过了,JSP 仍然设置了一个 JSESSIONID cookie :( 但这是互联网上的一般答案,所以我会接受它。
      • 谢谢!我认为当您使用<@page session="false"> 访问 JSP 时不会创建会话。我建议使用 Fiddler (fiddler2.com) 在创建会话时更好地理解。
      • 嘿,我也面临同样的问题,即使在添加了 即我的会话是在我的第一个 jsp 上创建的...我应该如何避免它?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 2013-08-15
      • 2019-09-16
      • 2022-09-24
      相关资源
      最近更新 更多