2010-02-03 10 views
8

Uso jsp/Servlet per il mio livello Web. C'è qualche strumento per esaminare gli attributi di sessione in una sessione web?Qualche strumento per visualizzare gli attributi delle sessioni Web?

+1

Non proprio sicuro del contesto della tua domanda, puoi approfondire un po '? Se riesci a eseguire il debug dell'applicazione nel tuo IDE, dovresti essere in grado di impostare un punto di interruzione e vedere cosa c'è nella sessione. –

+0

Sì, sei corretto. Ma voglio controllare dal browser. –

risposta

17

Naturalmente. In realtà non è uno strumento, ma un frammento di codice semplice. Da qualche parte in un servlet/jsp/filtro del vostro aggiungere il seguente:

Session session = request.getSession(); 
Enumeration attributeNames = session.getAttributeNames(); 
while (attributeNames.hasMoreElements()) { 
    String name = attributeNames.nextElement(); 
    String value = session.getAttribute(name); 
    System.out.println(name + "=" + value); 
} 

e avrete tutti gli attributi della sessione stampata sulla console.

In alternativa, in JSP fare:

<c:forEach items="${sessionScope}" var="attr"> 
    ${attr.key}=${attr.value}<br> 
</c:forEach> 

questo stampa tutti gli attributi della sessione sulla pagina.

Aggiornamento: Si scopre che si ha una comprensione errata della sessione. I dati della sessione sono sul lato server. Il client ha solo un identificativo univoco con il quale i suoi dati vengono inviati al server. Questo identificatore è molto spesso il "cookie di sessione", ma può anche far parte dell'URL (JSESSIONID). Quindi il client non può vedere i contenuti della sessione direttamente. Se si desidera che gli attributi della sessione vengano visualizzati con valori mediocri (diversi dal proprio codice hash), sovrascrivere il metodo toString().

+0

Grazie, questa è stata la soluzione alla fine, ma non c'è uno strumento (come il plugin firefox) che può fare questo? (perché se un browser può cancellare gli attributi della sessione perché non può visualizzarli?) Anche se l'attributo è un oggetto, utilizzando questa tecnica, mostrerà solo l'hashcode di quell'oggetto. –

+0

sembra che tu stia fraintendendo il concetto di sessione. vedi mu update – Bozho

+0

Capisco che i dati di sessione sono sul lato server, ma quello che sto chiedendo è se possiamo vedere le variabili di sessione senza avere il codice (come quelli che hai dato sopra) sul lato server? Ad esempio, possiamo visualizzare le variabili di sessione di stackoverflow.com? Anche per evitare che il codice hash sia override toString() che capisco. ma quello che voglio è scavare un oggetto per vederne gli oggetti figlio e gli oggetti figli ... –

Problemi correlati