Ciao,si gli entity vengono usati per la sola persistenza.Gli EJB non sono soltanto degli incapsulatori di logica di business offrono molto di più:
Scalabilità:
Per gestire un numero crescente di utenti si potrebbe aver bisogno di distribuire i componenti su più macchine, gli ejb possono essere eseguiti su più macchine in modo del tutto trasparente ai client.
Transazioni e sicurezza:
Gli EJB offrono il supporto transazionale, di autenticazione e autorizzazione.
Possono essere utilizzati da diversi client:
Un session bean può avere un'interfaccia locale,remota ma anche essere esposto come web service.
Riuso
Per la loro natura sono componenti riutilizzabili, l'application assembler può costruire nuove applicazioni partendo da bean esistenti.
Si puoi anche implementare la logica di business con classi java comuni, però poi in quel caso ti trovi tu a dover gestire questi ed altri aspetti. Certo puoi gestire la persistenza anche lavorando direttamente con Statements e ResultSets creando manualmente il tuo strato DAO.
L'estensione che uso è davvero molto semplice da installare e ben documentata, ti basta mettere il suo jar in WEB-INF/lib e configurare la sua servlet nel web-xml, questo è l'url
http://www.primefaces.org.
Si c'e' differenza, JSTL sono i tag standard della tecnologia JSP,i componenti JSF sono si tag ma vivono in un framework con il suo ciclo di vita, alcuni forse funzionano anche all'interno di pagine JSF ma non ti consiglio di mescolare le due cose...può essere utile invece usare le funzioni di JSTL questo si. All'università credo manchi un pò il collegamento con il mondo del lavoro e con l'avanzare della tecnologia.Buono studio.