è un vincolo del progetto da realizzare quello di usare clissi solo per l'invio di mail e la scrittura su pdf ??
Io personalmente trovo molto più comodo usare tutti classi a da dentro stampare il codice HTML della pagina.
In questo modo il codice JAVA diventa molto più leggibile e facile da mantenere !!
Per quanto riguarda la variabile di sessione faccio anche io + o - come l'esempio postato da nether.
Creo una classe utente e la istanzio nel momento in cui l'utente si logga correttamente e metto l'oggetto così creato in sessione. In ogni pagina recupero l'oggetto e se diverso da null vuol dire che l'utente è loggato correttamente. In questo modo in tutte le pagine dove avrai bisogno dei dati dell'utente non dovrai + ccedere al database ma potrai semplicemente recuperare cio chè ti serve da questo oggetto.
P.S. non so se ho capito io male o se ti sei spiagato male, ma quando dici di recuperare l'oggetto utente dal database, credo che ti riferisci al fatto di recuperare le singole voci che compongono la tabella degli utenti..... !?!?!