Sto partecipando a un evento di formazione sponsorizzato dalla compagnia per JSF e JPA che prevede 10 giorni di formazione in 5 giorni. Ho intenzione di ottenere tutto ciò che posso fuori dalla classe, ma non esiste un "esame finale".
JPA - Sì, è lo standard che sta sottolineando la maggior parte delle librerie Java ORM (ad es. Hibernate).
JSF? - Non così tanto, non è visto come uno std dominante (detto, nessun framework web è lo std dominante) e si prevede che continui a scivolare in termini di condivisione della mente e distribuzione (a meno che non vengano apportate alcune modifiche radicali).
JSF 2.0 è abbastanza carino ed è facile iniziare su NetBeans 7 con GlassFish 3.1. Raccomando di acquistare Core JavaServer Faces 3rd Edition (libro), che è un buon punto di partenza, altrimenti ti perderai quando inizi a costruire qualcosa di sostanziale. (In alternativa, si potrebbe provare JavaServer Faces 2.0, The Complete Reference, ma non ho letto molto di questo.) PrimeFaces è la migliore libreria di componenti in circolazione al momento e ha una community e forum attivi. È basato su jQuery, il che significa che puoi skinare la tua app con ThemeRoller.
Un vantaggio di JSF rispetto a JSP è che gestisce l'intero ciclo di vita richiesta-risposta nel suo servlet controller in modo da non doverlo fare. La chiave del tuo successo sta diventando familiare con questo ciclo di vita, sapendo quali sono le diverse fasi e quando puoi aspettarti che vari tipi di eventi vengano licenziati.
JPA ti farà risparmiare un sacco di tempo se non provi a combatterlo. Non provare a costruire il modello di dati perfetto nel tuo database quindi aspettati di essere in grado di inserirli in un Jave EE con l'app JPA. O consentire a JPA di creare il proprio modello di dati dalle classi di entità fornite o di acquisire familiarità con i limiti di modellazione dei dati di JPA, accetta la realtà che dovrai applicare più regole aziendali (rispetto a ciò a cui potresti essere abituato) in codice anziché a livello di modello di dati. Cerca di evitare le chiavi primarie composite, ad eccezione ovviamente delle tabelle di join. JPA non può generare automaticamente valori nelle chiavi primarie composte.
NetBeans può generare automaticamente lo stack di codice completo per l'esecuzione di operazioni CRUD tramite il web. Questo codice generato automaticamente è composto da JPA, EJB e JSF. Potrebbe essere un buon punto di partenza per ciò che stai costruendo. Per lo meno, sarà un buon strumento di apprendimento.