我想爲我的會話生成唯一的會話ID。所以我用UUID。在這裏我也如何將UUID值轉換爲字符串
if (session == null) {
session = httpServletRequest.getSession(true);
session.setAttribute("logedin", "0");
if (!httpServletRequest.isRequestedSessionIdFromCookie()) {
UUID sessionID = UUID.randomUUID();
Cookie sessionCookie = new Cookie("JSESSIONID", "sessionID"); //problem
}
Cookie的構造函數接受兩個字符串,如何將我的UUID轉換爲字符串,所以它得到UUID值,它是獨一無二的? 謝謝
servlet容器已經嘗試爲你生成一個cookie。用另一個值覆蓋它會阻止servlet容器找到你的會話。 – gawi 2012-04-13 13:05:12
嗯,謝謝。這是我不知道的非常非常重要的一點。非常感謝。其實我想的就是這個。會話跟蹤API生成名爲'JSESSIONID'的ID,所以我認爲我只是改變了值。但是你說變化的值會影響默認的會話跟蹤..... hhmm好吧,我不改變這個值,但是我想問一下,我可以在默認的JSESSIONID上設置setMaxAge()嗎?像獲取默認的JSESSION cookie一樣,設置其maxAge,然後使用addCookie。我可以那樣做嗎?謝謝 – Basit 2012-04-13 13:49:51
如果您想更改最大年齡以控制會話何時到期,則應該在web.xml中設置session-config> session-timeout元素。請注意,JSESSIONID cookie不一定包含_only_會話ID。在某些容器上,在會話ID之前添加附加信息。有關示例,請參閱[本](https://www.ibm.com/developerworks/mydeveloperworks/blogs/Dougclectica/entry)/ websphere_session_ids22?lang = en。如果你經常做東西,你不應該改變JSESSIONID cookie。 – gawi 2012-04-16 01:20:27