La mia prima pagina è identica alla tua.
Nella seconda invece di settare i campi dell'oggetto User con il jsp:setProperty li ho settati direttamente con i suoi metodi setter. L'istanza di User raggiungibile con l'id "tizio" rimarrà raggiungibile per tutta la sessione quindi nn c'è bisogno di memorizzare l'oggetto nella request.
	codice:
	        
        <jsp:useBean id="tizio" scope="session" class="cinema.User" />
        
        <%
            tizio.setUsername(request.getParameter("nickname"));
            tizio.setPassword(request.getParameter("password"));
            tizio.setBudget(Integer.valueOf(request.getParameter("budget")));
        %>
            <jsp:forward page="pag3.jsp" />
 
Nella terza pagina con queste due righe recuperi l'oggetto tizio.
	codice:
	        <jsp:useBean id="tizio" scope="session" class="cinema.User" />
        <%
            out.println((com.stywer.test.User) tizio);
        %>
 
altrimenti puoi passarlo con una setAttribute sull'oggetto request.
pagina 2
	codice:
	        <%
            User usr = new User(request.getParameter("nickname"),
                                request.getParameter("password"),
                                Integer.valueOf(request.getParameter("budget"))
            );
            
            request.setAttribute("tizio", usr);
        %>
        <jsp:forward page="pag3.jsp" />
 
pagina 3
	codice:
	        <%
            out.println(request.getAttribute("tizio"));
        %>