Chcę wygenerować unikalny identyfikator sesji dla mojej sesji. Więc użyłem UUID. Oto co zrobiłemJak przekonwertować wartość UUID na ciąg
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
}
Konstruktor Cookie przyjąć dwa ciągi, w jaki sposób można przekonwertować mój UUID ciąg więc uzyskać wartość UUID, które jest wyjątkowy? Dzięki
Pojemnik aplet już próbował wygeneruj plik cookie dla Ciebie. Zastąpienie go inną wartością spowoduje, że kontener serwletu nie znajdzie twojej sesji. – gawi
HHmmm dzięki. To bardzo ważny punkt, o którym nie wiem. Wielkie dzięki. Właściwie to właśnie myślałem. API Session Tracking generuje identyfikator o nazwie 'JSESSIONID', więc pomyślałem, że właśnie zmieniam wartość. Ale mówisz, że zmiana wartości zakłóca domyślne śledzenie sesji ..... hhmm ok Nie zmieniam wartości, ale chcę zapytać, czy mogę ustawić setMaxAge() na domyślnym JSESSIONID? Podobnie jak domyślny plik cookie JSESSION, ustaw jego maxAge, a następnie użyj addCookie. Czy mogę to zrobić? Dzięki – Basit
Jeśli chcesz zmienić maksymalny wiek, aby kontrolować, kiedy sesja wygaśnie, powinieneś raczej ustawić session-config> session-timeout element w web.xml. Zwróć uwagę, że plik cookie JSESSIONID niekoniecznie zawiera _only_ identyfikator sesji. W niektórych kontenerach dodatkowe informacje są dodawane po przed identyfikatorem sesji. Zobacz [to] (https://www.ibm.com/developerworks/mydeveloperworks/blogs/Dougclectica/entry)/websphere_session_ids22? Lang = en na przykład. Nie powinieneś modyfikować pliku cookie JSESSIONID, jeśli robisz regularne rzeczy. – gawi