我知道如何将jsessionid传递给URL。我对网址进行编码,如下所示:
mysite.com; jsessionid = 0123456789ABCDEF(http)
是否存在使用Java从URL检索jsessionid的内置方法?我在javadocs,isRequestedSessionIdFromURL中找到了这个方法,但它并没有帮我实际检索该值。我是否必须构建自己的检索方法?
谢谢。
答案 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 - 隐藏表单字段。