在Java EE 6中学习Java Web应用程序需要学习什么?

cre*_*ivz 103 java web-applications java-ee

我的目标是制作网络应用程序!

我读完了"Headfirst - Java"和"Headfirst - Servlets and JSP"这些书.

因为这个主题(Web应用程序)是如此庞大和复杂,我想问下一步我应该学习什么.当我阅读Java EE,EJB,JSF,JPA,Glassfish等流行语时,我觉得过度训练......但我不会放弃.

谁能告诉我应该如何继续学习?我应该抓一本这样的书: 用GlassFish 3开始Java EE 6平台:从新手到专业还是我应该做一些在线教程?

谢谢!

Pas*_*ent 172

即使我知道这会引起争议,我的建议只是从Java EE 6开始.因此,抓住GlasshFish v3并获得" 使用GlassFish 3开始Java EE 6平台 "一书:从初学者到专业版或遵循Java EE 6教程.在我看来,这本书(我已经开始阅读,所以我知道我在说什么)提供了更多的指导,如果"一切"对你来说是新的,它可能是更可取的(它涵盖了Java EE平台及其API)以及构建,部署应用程序的环境.

现在,正如我所说,我已经可以听到声音说"Java EE很重,使用Spring,学习Struts或Wicket或Stripes用于表示层,学习Hibernate的持久性,或者不是因为我不喜欢ORM,使用iBatis或直接使用JDBC(你会看到,Spring很酷,Spring很酷),使用Tomcat(以及为什么不是Jetty),或者JBoss,或者只是忘掉所有这些并去Grails,并且bla bla bla ......".

但我认为这并不能真正帮助你,如果没有指导或指导(并且你找不到涵盖所有组合的非过时的独特资源),这对于初学者来说听起来非常混乱.

所以,因为我认为Java EE 6比以前版本的Java EE有了很大的改进,因为它为您的所有需求提供了非常好的标准API(Servlet 3.0,JSF 2.0,JPA 2.0,EJB 3.1 lite,Bean Validation 1.0,CDI)等等,因为这些API都不错,因为学习它们并没有什么不妥,因为这已经是一项大任务,因为你必须从某个地方开始,我只关注Java EE 6而忘记了现在的其他框架.更确切地说,我将从Java EE 6 Web Profile开始(如果你想更进一步,那就添加一些内容).

通过这样做,1)你将开始,你将学习全新的东西和2)你会给所有其他框架和/或工具一些时间来适应并证明仍然需要它们.如果有的话,仍然是时候对幸存者进行实验,你将能够更好地理解他们存在的原因.

  • +1,但春天真是太酷了:-) (23认同)
  • 不要误解我,Stripes,Spring,Hibernate,......都很棒.但是,在发现新内容时,太多选择可能会令人困惑,我相信Java EE 6允许您在没有它们的情况下启动. (13认同)
  • 4多年后....你会改变你的答案吗? (13认同)
  • 我同意你的观点,即使你不使用任何一个,学习JEE堆栈也是非常重要的,毕竟堆栈**是所有令人难以置信的框架的基线,例如Wicket是基于前端控制器概念构建,在Java世界中意味着Servlets和过滤器 - 如果你不知道它们是如何工作的,你就不会真正理解Wicket正在做什么!当然,除非你接受*"魔术!"*作为答案. (9认同)
  • 谢谢.关于这本书,我没有完全阅读它,但我肯定会为那些希望对Java EE 6有一个很好的概述的新手和实验开发人员推荐它.这本书构造得很好,它真的涵盖了许多API(不多缺少),它有代码示例展示所呈现的一切,它们真的是教诲,并允许你想要的深度.未来可能会有更多专注的书籍,但这是一个很好的书籍. (3认同)

Ste*_*n C 28

我的建议1是停止阅读书籍并开始实施.根据我的经验,书本学习很差,可以替代你通过实际操作获得的知识.


1 - 上下文:这是对刚完成两本关于该主题的书籍的人的建议.

  • 但它可以节省你的搜索天数.也可以给你足够的知识来回答问题,而不是问他们,并最终在这里有很高的声誉,你不同意吗? (29认同)
  • 不,我不同意.OP已经阅读了两本Java/Java EE书籍.现在是他做一些编程的时候了.FWIW,我从阅读书籍中获得的大部分知识都没有.相反,我通过实现并在需要时参考文档来获得PRIMARILY.你不学习通过阅读书籍来骑自行车......而且你也不会以这种方式学习编程技巧. (6认同)
  • 平衡"阅读"和"练习"很重要. (3认同)

Wil*_*ung 9

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编程,原始Servlet非常重要,只是为了理解请求/响应周期,但您不需要深入了解即可实现对第三方框架的跨越.

我是Stripes for Action框架(与组件框架相比)的忠实粉丝,并且单个Stripes书籍非常出色(选择这是一个简单的选择).

我不能建议一个组件框架书,我实际上不会推荐一个.组件框架真正掩盖了HTTP核心请求/响应结构.他们埋葬他们是有原因的,他们通过埋葬他们获得了价值,但我相信要有效,你需要在早期对这些概念有充分的了解.这就是我不建议首先学习组件框架的原因.

JAX-RS REST框架包含在Java EE 6中,但可以很容易地安装在Java EE 5或任何servlet容器中,非常出色.可以说它应该是Servlet 3.0所应有的.但我不知道那本书.

  • 问题是当您准备好生产时应用程序服务器的状态.如果给定项目从现在开始需要6个月,那么Oracle和JBoss很可能拥有符合JEE6标准的服务器,而Resin很可能拥有JEE6 Web Profile服务器. (2认同)

dan*_*ben 5

对于Tomcat,请阅读网站上的手册。这很棒。特别是,有关Web应用程序组织和部署的前几章,以及有关Servlets API和JSP的章。

对于Spring,Manning的《 Spring in Action》一书非常好。对于Hibernate(有关Manning的书)也是如此,但是我认为Hibernate基本上不在webapp的范围之内。不过打给你。

小门-曼宁的书也。但实际上,只需用Javascript编写前端代码。IMO,这将减轻痛苦。