Java EE 6 est vraiment incroyable. Le seul problème est qu'il a environ 2 semaines et qu'il n'y a actuellement qu'un seul conteneur offrant ses fonctionnalités - Glassfish.
Je n'ai rien contre Glassfish, je l'utilise partout, plusieurs instances de production, j'adore le produit et le projet.
Cela dit, les détails de Java EE 6 ne se traduisent pas en Java EE 5. Certains le font, beaucoup le font, mais le profil Web, le Servlet 3.0, les nouveaux types de Bean, JPA 2, etc.
Ainsi, en apprenant d'abord Java EE 6, vous vous limitez simplement à un seul conteneur. D'autres sont à venir, mais ils ne sont pas encore là.
Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, etc. fonctionnent tous bien avec la spécification Java EE 5 (au moins les parties de la spécification qu'ils prennent en charge, Tomcat n'a pas d'EJB par exemple).
Je ne peux penser à rien dans Java EE 5 qui n'ait pas été transféré à Java EE 6. Java EE 6 a rendu certains aspects très anciens facultatifs, et ceux que vous n'apprendriez tout simplement pas aujourd'hui. Java EE 6 a rendu certaines choses Java EE 5 encore plus faciles (packaging notamment, EJB Lite par exemple).
Apprenez Java EE 5 maintenant afin de pouvoir réellement appliquer ce que vous apprenez dans une variété d'environnements, plutôt que d'apprendre Java EE 6 maintenant et de découvrir que vous ne pourrez peut-être pas utiliser une grande partie de ce que vous apprenez.
Aucun livre ne vous apprendra ce que vous devez savoir. Les servlets, par exemple, sont une bonne base, mais pour tout ce qui dépasse quelques pages ou points de terminaison, vous voudrez utiliser l'un des nombreux frameworks tiers, ou JSF, et aucun livre ne couvre le noyau, puis un framework sur le dessus de ça.
Le didacticiel Java EE 5 est bon pour jeter les bases, mon principal reproche est qu'il ne vous montre pas le code source. Ils s'attendent plutôt à ce que vous le téléchargiez et l'exécutiez. Ce n'est pas discuté dans le didacticiel. J'ai trouvé que les livres Head First étaient plutôt bons.
Pour la programmation Web, les servlets bruts sont suffisamment importants pour comprendre le cycle de demande / réponse, mais vous n'avez pas besoin d'une compréhension approfondie pour faire un saut vers un cadre tiers.
Je suis un grand fan de Stripes pour un framework Action (par rapport à un framework de composants), et le seul livre Stripes disponible est excellent (ce qui en fait un choix facile).
Je ne peux pas suggérer un livre de cadre de composants, et je ne recommanderais en fait pas un tout de suite. Les frameworks de composants enterrent vraiment les structures de requête / réponse HTTP principales. Ils les enterrent pour une raison et ils gagnent en valeur en les enterrant, mais je crois que pour être efficace, il faut avoir une solide compréhension de ces concepts dès le début. C'est pourquoi je ne suggère pas d'apprendre d'abord un cadre de composants.
Le framework JAX-RS REST, inclus dans Java EE 6, mais facilement installable dans Java EE 5 ou tout autre conteneur de servlet, est excellent. C'est sans doute ce qu'aurait dû être Servlet 3.0. Mais je ne connais aucun livre pour ça.