Desidero generare un ID di sessione univoco per la mia sessione. Quindi ho usato UUID. Ecco che cosa ho fattoCome convertire il valore UUID nella stringa
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
}
Il costruttore Cookie accetta due stringhe, come posso convertire il mio UUID a stringa in modo da ottenere il valore UUID che è unica? Grazie
Il servlet container ha già cercato di genera un cookie per te. La sovrascrittura con un altro valore impedirà al contenitore della servlet di trovare la tua sessione. – gawi
HHmmm grazie. Questo è un punto molto importante di cui non sono a conoscenza. Grazie mille. In realtà quello che stavo pensando è quello. L'API di tracciamento della sessione genera l'ID con il nome "JSESSIONID", quindi ho pensato di cambiare semplicemente il valore. Ma stai dicendo che il cambiamento del valore disturba il Session Tracking predefinito ..... hhmm ok non cambio il valore ma voglio chiederlo posso impostare setMaxAge() sul JSESSIONID predefinito? Come ottenere il cookie JSESSION predefinito, impostane il valore maxAge e quindi usa addCookie. Posso farlo? Grazie – Basit
Se si desidera modificare il limite massimo per controllare quando scadrà la sessione, è necessario impostare l'elemento session-config> session-timeout nel web.xml. Si noti che il cookie JSESSIONID non contiene necessariamente _solo_ l'ID di sessione. Su alcuni contenitori, vengono aggiunte ulteriori informazioni prima dell'ID di sessione. Vedi [questo] (https://www.ibm.com/developerworks/mydeveloperworks/blogs/Dougclectica/entry)/websphere_session_ids22? Lang = it per un esempio. Non devi alterare il cookie JSESSIONID se stai facendo cose normali. – gawi