Quel "document.location.href " mi fa pensare ad un problema di configurazione di session traking.
Fai una prova al volo e prova a mettere nel tuo web.xml
codice:<session-config> <tracking-mode>COOKIE</tracking-mode> </session-config>
Quel "document.location.href " mi fa pensare ad un problema di configurazione di session traking.
Fai una prova al volo e prova a mettere nel tuo web.xml
codice:<session-config> <tracking-mode>COOKIE</tracking-mode> </session-config>
Ultima modifica di Shadow976; 19-12-2014 a 16:46
Prova a verificare qual è l'indirizzo da cui proviene la richiesta su entrambe le servlet.
Inserisci queste istruzioni in entrambe le servlet (magari appena prima di creare/recuperare la sessione):
codice:System.err.println("Servlet1: " + request.getRemoteAddr()); System.err.flush();
(ovviamente, nella seconda Servlet cambia la scritta fissa con "Servlet2", in modo da distinguere le due richieste).
Poi controlla nel log di errore di Tomcat cosa viene stampato in output... in particolare, verifica se l'indirizzo IP di entrambe le richieste è lo stesso oppure no.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Gli indirizzi IP di provenienza sono identici. Io non so più cosa fare, hai qualche altro suggerimento?
SUBITO! Dammi due secondi. Grazie per la tua rapidità.
Una cosa stupida però la potresti provare, metti un form che submitta sulla prima servlet e da li fai un forward verso la seconda, in pratica non fare il forward tramite window.location.
Secondo me in questo modo ti funzionerà....
Ragazzi, funziona a metà.
Mi spiego, da servlet a servlet il valore di sessione viene conservato (ho fatto esattamente come avete detto, per il passaggio login - intro; prima era login -> servletcheck -> login -> srvPT e non andava; ora il passaggio è diretto login.jsp -> servletcheck > srvPT -> intro.jsp. Tra le due servlet l'id sessione è conservato e tutto funziona.
Ora però in tutte le parti del programma (come è normale che sia) vi sono pagine jsp che stanziano servlet; non posso per tutta l'applicazione far rimbalzare da una servlet all'altra, pena la perdita della sessione.
Bene, in questi casi ancora non funziona; ossia, sembra che istanziare una servlet da una pagina jsp faccia perdere la sessione. Ma è stranissimo!
Esempio di come apro una servlet da una pagina della mia app (l'href che vedete di seguito è il link associato, ad esempio, a un pulsante di menu):
Come mai? Dai, ci siamo quasi!codice:href="SrvPT?page=edit"
Dire che ci siamo è un parolone....
Come ti ho scritto prima lo immaginavo che facendo in questo modo avrebbe funzionato, è l'unica cosa che mi è venuta in mente era appunto l'url rewriting che effettivamente potrebbe variare in base al sistema su cui uno si trova. Ma dato che anche forzandolo a cookie non ha portato all'effetto desiderato non mi viene altro in mente...
Capisco... Allora mi rassegno... Maledetto Tomcat