Questa riga di codice

codice:
<jsp:useBean id="tizio" scope="session" class="cinema.User" />
non fa altro che evitarti di scrivere codice java per la memorizzazione di un oggetto accessibile per tutta la sessione, in questo caso specifico viene creato questa porzione di codice.

[CODE]
com.stywer.test.User tizio = null;
synchronized (session) {
tizio = (com.stywer.test.User) _jspx_page_context.getAttribute("tizio", javax.servlet.jsp.PageContext.SESSION_SCOPE);
if (tizio == null){
tizio = new com.stywer.test.User();
_jspx_page_context.setAttribute("tizio", tizio, javax.servlet.jsp.PageContext.SESSION_SCOPE);
}
}
[\CODE]

come vedi l'oggetto tizio viene memorizzato in jspx_page_context con setAttribute(), quindi non viene memorizzato nell'oggetto request e quindi all'invocazione di request.getAttribute() ti verrà reso null. Su vuoi memorizzarlo su reques o lo fai direttamente invocando la setAttribute() di request oppure invece di impostare lo scope come session lo imposti come request, quindi:

codice:
<jsp:useBean id="tizio" scope="request" class="com.stywer.test.User" />
e risulterà accessibile da getAttribute().

Passando alla seconda domanda, potresti postare anche la pagina dove avviene sottrato l'importo del biglietto dal budget?