如何从JSP中的URL中检索jsessionid?

时间:2012-08-31 18:35:55

标签: java jsp session sessionid jsessionid

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

  

mysite.com; jsessionid = 0123456789ABCDEF(http)

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

谢谢。

3 个答案:

答案 0 :(得分:7)

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

因此,您应该能够在JSP页面中执行session.getId()

答案 1 :(得分:1)

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

答案 2 :(得分:0)

session.getId()应该能够获得会话ID。一旦确定会话ID未存储在cookie或隐藏表单字段中,WLS将对URl进行实际解析以检索会话ID。序列通常是Cookie - URL - 隐藏表单字段。