【问题标题】:How do I retrieve the jsessionid from URL in JSP?如何从 JSP 中的 URL 中检索 jsessionid?
【发布时间】:2012-08-26 14:19:33
【问题描述】:

我知道如何将 jsessionid 传递给 URL。我对 url 进行编码,如下所示:

mysite.com;jsessionid=0123456789ABCDEF (http)

是否存在使用 Java 从 URL 中检索 jsessionid 的内置方法?我在javadocs 中找到了这个方法,isRequestedSessionIdFromURL,但它并不能帮助我实际检索该值。我必须建立自己的检索方法吗?

谢谢。

【问题讨论】:

  • 在 Servlet(或)普通 java 类中?
  • 你为什么想要它?您很少需要手动触摸它。
  • 它可以在 servlet 或普通的 java 类中。我只想知道如何阅读它。即,我还能执行 request.getSession(false).getId() 吗?

标签: java jsp session sessionid jsessionid


【解决方案1】:

JSP 有一个隐含的session 对象,类似于request 对象。它是java.servlet.http.HttpSession 的一个实例,它的方法是getId()

所以,您应该可以在您的 JSP 页面中执行 session.getId()

【讨论】:

  • 好的,是的,这正是我想看看我是否还能做的事情。谢谢你。我认为将 jsessionid 传递给 URL 使其成为查询字符串的一部分。
【解决方案2】:

无 Cookie 会话是在 Java 中通过将格式为 ;jsessionid=SESSION_IDENTIFIER 的字符串附加到 URL 的末尾来实现的。为此,您的网站发出的所有链接都需要通过 HttpServletRequest.encodeURL() 直接或通过 JSTL 标记等机制传递。即使是单个链接也不这样做,可能会导致您的用户永远失去他们的会话。

【讨论】:

    【解决方案3】:

    session.getId() 应该能够为您获取会话 ID。一旦 WLS 识别出会话 ID 未存储在 cookie 或隐藏表单字段中,WLS 将执行 UR1 的实际解析以检索会话 ID。顺序通常是 Cookie - URL - 隐藏表单字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      相关资源
      最近更新 更多