Java EE 6非常惊人。唯一的问题是它才发布了2周,目前只有1个容器提供其功能——Glassfish。
我对Glassfish没有任何意见,我在很多地方都使用它,有几个生产实例,我喜欢这个产品和项目。
话虽如此,Java EE 6的细节不能转换回Java EE 5。有些可以,但Web Profile、Servlet 3.0、新Bean类型、JPA 2等不在其中。
因此,通过先学习Java EE 6,您只是将自己限制在单个容器中。更多的容器正在到来,但它们还没有出现。
Tomcat、JBoss、OpenEJB、Glassfish、Jetty、Resin、Geronimo等都与Java EE 5规范良好地配合(至少支持规范的那些部分,例如Tomcat没有EJB)。
我想不出Java EE 5中没有被带入Java EE 6的任何内容。Java EE 6使一些非常古老的方面变成可选项,而今天您根本不需要学习这些。Java EE 6使一些Java EE 5的东西甚至更容易(特别是打包,例如EJB Lite)。
现在学习Java EE 5,以便您实际上可以在各种环境中应用所学,而不是现在学习Java EE 6,然后发现您可能无法使用所学的大部分内容。
没有一本书可以教你所需要知道的一切。例如,Servlets是一个很好的基础,但对于大于几页或端点的任何内容,您都将想要使用许多第三方框架或JSF,而且没有一本书涵盖了核心和上面的框架。
Java EE 5教程在奠定基础方面做得很好,我主要的抱怨是他们不向您展示源代码。相反,他们希望您只需下载并运行它。这在教程中没有讨论过。我发现Head First系列的书籍非常不错。
对于Web编程,原始的Servlets足够重要,只要理解请求/响应周期即可,但您不需要深入了解就可以跳到第三方框架。
我非常喜欢Stripes作为Action框架(与组件框架相比),单独的Stripes书籍非常出色(选择它是一个容易的选择)。
我不能建议组件框架的书籍,我实际上不推荐立即阅读。组件框架真正隐藏了HTTP核心请求/响应结构。他们之所以隐藏它们,是有原因的,并且通过隐藏它们获得了价值,但我认为要有效,您需要尽早对这些概念有一个扎实的理解。这就是为什么我不建议首先学习组件框架。
JAX-RS REST框架包含在Java EE 6中,但可轻松安装在Java EE 5或任何Servlet容器中。可以说它是Servlet 3.0应该具备的功能。但我不知道有关它的任何书籍。