[Java] Perché JSF salva lo stato dei componenti dell'interfaccia utente sul server?


Answers

Question
  1. Fino a che punto nel tempo JSF salva lo stato dei componenti dell'interfaccia utente sul lato server e quando le informazioni sullo stato del componente UI sono rimosse dalla memoria del server? Quando un utente connesso all'applicazione naviga attraverso le pagine, lo stato dei componenti continuerà ad accumularsi sul server?

  2. Non capisco qual è il vantaggio di mantenere lo stato dei componenti UI sul server!? Non sta trasmettendo abbastanza direttamente i dati convalidati / convertiti ai bean gestiti? Posso o dovrei provare a evitarlo?

  3. Non consuma troppa memoria sul lato server, se ci sono migliaia di sessioni utente simultanee? Ho un'applicazione in cui gli utenti possono pubblicare blog su determinati argomenti. Questi blog sono di dimensioni piuttosto grandi. Quando ci saranno post o richieste di visualizzazione dei blog, questi dati della grande pagina verranno salvati come parte dello stato dei componenti? Questo mangerebbe troppa memoria. Non è una preoccupazione?

Aggiornamento 1:

Ora, non è più necessario salvare lo stato durante l'utilizzo di JSF. Un'implementazione Stateless JSF ad alte prestazioni è disponibile per l'uso. Vedi questo blog e questa domanda per dettagli e discussioni rilevanti. Inoltre, vi è un issue aperto da includere nelle specifiche JSF, un'opzione per fornire la modalità senza stato per JSF. (PS Considera di votare per i problemi issue e this se questa è una funzione utile per te.)


Aggiornamento 2 (24-02-2013):

Una bella notizia che Mojarra 2.1.19 è in modalità senza stato !

Vedere qui:

http://weblogs.java.net/blog/mriem/archive/2013/02/08/jsf-going-stateless?force=255

http://java.net/jira/browse/JAVASERVERFACES-2731

http://balusc.blogspot.de/2013/02/stateless-jsf.html