Ciao a tutti, devo implementare un carrello usando i bean stateful ma non riesco a capire come funziona un particolare, ho guardato tutte le guide ma continuo a non capire,
come faccio a differenziare tra i vari utenti la collection<Prodotto> in modo che ogni utente abbia la sua "lista della spesa".

Ora come ora se un utente aggiunge una prodotto al carrello e un altro utente ne aggiunge un altro la lista della spesa è comune ai due e ovviamente non va bene.

il mio programma funziona così:


l'utente da una JSP chiama una servlet addCart che(dopo aver controllato se già esiste in sessione il bean e nel caso lo assegna al bean della servlet) chiama un bean stateful che rappresenta il carrello e ha al suo interno una Collection di prodotto, a questa collection viene aggiunto il prodotto passato dalla servlet.
a questo punto la servlet salva in sessione il bean.
e ritorna sulla jsp.


posto il codice del beans
codice:
@Stateful
public class carrelloStatefullBean implements carrelloStatefullRemote {
    private Collection<Acquisto> carrello;
    private User user;

    @Override
    public void addCart(Acquisto acquisto) {
        this.carrello.add(acquisto);
    }

    @Override
    public Collection<Acquisto> getCarrello() {
        return carrello;
    }

    @Override
    public User getUser() {
        return user;
    }

    @Override
    public void setUser(User user) {
        this.user = user;
    }

    @Override
    public void reset(){
        this.carrello.removeAll(carrello);
    }

    @PostConstruct
    public void init() {
        this.carrello = (Collection<Acquisto>) new ArrayList<Acquisto>();
    }

    @Remove
    public void remove() {
        this.carrello = null;
    }
e il codice della servlet:
codice:
public class AddCart extends HttpServlet {
    @EJB
    private carrelloStatefullRemote carrelloStatefullBean;
    @EJB
    private EJBViniServicesRemote eJBViniServicesBean;

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

carrelloStatefullBean = (carrelloStatefullRemote) request.getSession().getAttribute("bean");      
            int quantitaOrdinata = Integer.parseInt(request.getParameter("quantitaOrdinata"));
            int idVino = Integer.parseInt(request.getParameter("idVino"));
            User user = (User) request.getSession().getAttribute("user");
            Vino vinoOrdinato = new Vino();
            vinoOrdinato = eJBViniServicesBean.findVino(idVino);
            Acquisto acquisto = new Acquisto();
            acquisto.setNumeroBottiglieAcquistate(quantitaOrdinata);
            acquisto.setVino(vinoOrdinato);
            carrelloStatefullBean.setUser(user);
            carrelloStatefullBean.addCart(acquisto);
            Collection<Acquisto> p = carrelloStatefullBean.getCarrello();
            request.getSession().setAttribute("bean", carrelloStatefullBean);
            RequestDispatcher view = request.getRequestDispatcher("caricaListaVini");
           view.forward(request, response);
Qualcuno mi sa dire se c'è qualche errore madornale che ho fatto o se non ho capito nulla sui bean statful?????


ciao e grazie