在 Java EE 6 中制作 Java Web 应用程序需要学习啥? [关闭]

Posted

技术标签:

【中文标题】在 Java EE 6 中制作 Java Web 应用程序需要学习啥? [关闭]【英文标题】:What to learn for making Java web applications in Java EE 6? [closed]在 Java EE 6 中制作 Java Web 应用程序需要学习什么? [关闭] 【发布时间】:2010-12-29 22:30:36 【问题描述】:

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

我读完了“Headfirst - Java”和“Headfirst - Servlets and JSP”这两本书。

因为这个话题(网络应用)太大太复杂了,想问问接下来应该学什么。当我阅读 Java EE、EJB、JSF、JPA、Glassfish 等流行语时,我感到压力过大,但我不会放弃。

谁能告诉我应该如何继续学习?我应该拿这样一本书吗: Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional 还是我应该做一些在线教程?

谢谢!

【问题讨论】:

我已经阅读了这两个主题。但再说一遍:在线程中,他们只是说“学习 Tomcat、JBoss、Hibernate、学习这个或那个等等……”只是用文字来表达。但我想知道我应该学习哪本书或教程。也许没有这样的方法,我必须通过查找每个单词来“低效地”学习它。我只是希望得到如何进行的建议。 如果您对核心 Java 有很好的了解,我建议您从 Head First Servlets 和 JSP 开始。如果您不习惯将 Java 作为编程语言,那么首先您需要掌握一些关于它的知识,然后再进行 Web 应用程序开发。 除了所有这些问题都已经过时了,因为 Java EE 6 已经过时了...... @Stephen 好吧,我实际上认为存在 差距,尤其是在 Web 部件上(使用 Servlet 3.0 或 JSF 2.0 和 CDI 托管 bean)。 有趣的是,有多少像这样的高票一般性问题被关闭为“不具建设性”。我会说他们非常有建设性,但不容易以建设性的方式回答。它们确实有助于了解一个人正在做什么或应该做什么的大局。但很高兴他们被允许留在 SO。 【参考方案1】:

即使我知道这会引起争议,我的建议还是只从 Java EE 6 开始。所以,抓住 GlassFish v3 并获取书籍Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional 或关注Java EE 6 tutorial。在我看来,这本书(我已经开始阅读,所以我知道我在说什么)提供了更多的指导,如果“一切”对你来说都是新的(它涵盖了 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) 您将给所有其他框架和/或工具一些时间来适应并证明仍然需要他们。如果有的话,仍然是时候对幸存者进行实验,你将能够更好地理解它们存在的原因。

【讨论】:

谢谢。关于这本书,我还没有完整地阅读它,但我绝对会推荐给想要全面了解 Java EE 6 的新手和经验丰富的开发人员。这本书结构良好,它确实涵盖了许多 API(不多不见了),它有代码示例演示了所呈现的所有内容,它们确实具有指导意义,并且可以随心所欲地深入。未来可能会有更多重点书籍,但这是一本好书。 +1,但是 Spring 太酷了 :-) 不要误解我的意思,Stripes、Spring、Hibernate……很棒。但是当发现新事物时,太多的选择可能会让人感到困惑,我相信 Java EE 6 允许您在没有它们的情况下开始。 我同意你的观点,学习 JEE 堆栈非常重要,即使你不会使用其中的任何一个,毕竟该堆栈所有精彩的基础让事情变得真正伟大的框架,例如 Wicket 是建立在 Front Controller 概念之上的,在 Java 世界中这意味着 Servlet 和 Filters - 如果你不知道它们是如何工作的,你也不会真正理解 Wicket 在做什么!当然,除非你接受 "magic!" 作为答案。 4 多年后....你会改变你的答案吗?【参考方案2】:

我的建议1是停止阅读书籍并开始实施一些东西。根据我的经验,书本学习无法替代您通过实际做事获得的知识。


1 - 上下文:这是给刚读完两本关于该主题的书并正在寻找更多书籍的人的建议。在实践中,你需要平衡阅读和做事。特别是如果你有一个特定的问题要解决。

【讨论】:

但它可以为您节省几天的搜索时间。也可以给你足够的知识来回答问题而不是问他们并最终在这里获得很高的声誉,你不同意吗? 不,我不同意。 OP 已经阅读了两本 Java / Java EE 书籍。是时候让他做一些编程了。 FWIW,我的大部分知识都不是从读书中获得的。相反,我主要是通过实现事物并在需要时参考文档来获得它。你不是通过看书学会骑自行车的……你也不是通过这种方式学习编程技能的。 平衡readingpractice很重要。【参考方案3】:

Jpassion 提供了很好的视频和材料来学习 Java EE 6 和其他东西。

您还应该看到应用示例:

    Petstore。需要 Maven,建议使用 Glassfish。由编写上述book 的 Antonio Goncalves 撰写。 JBoss Ticketmonster。需要 Maven 和 Jboss Forge。在 Jboss 中部署。

【讨论】:

【参考方案4】:

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 并发现您可能无法使用所学的大部分内容。

没有一本书会教你需要知道的东西。例如,Servlet 是一个很好的基础,但是对于任何大于几页或端点的东西,您将希望使用许多 3rd 方框架之一,或 JSF,没有一本书涵盖核心,然后是顶部的框架那个。

Java EE 5 教程擅长打好基础,我的主要抱怨是它们没有向您展示源代码。相反,他们希望您只需下载并运行它。教程中没有讨论。我发现 Head First 书籍非常好。

对于 Web 编程,原始 Servlet 非常重要,仅用于了解请求/响应周期,但您不需要深入了解即可飞跃到第 3 方框架。

我是 Action 框架(相对于组件框架)的 Stripes 的忠实粉丝,可用的单一 Stripes 书非常棒(选择它很容易)。

我不能推荐一本组件框架书,实际上我也不会马上推荐一本。组件框架真正隐藏了 HTTP 核心请求/响应结构。他们埋葬它们是有原因的,并且通过埋葬它们来获得价值,但我认为要有效,您需要尽早对这些概念有深刻的理解。这就是为什么我不建议先学习组件框架的原因。

JAX-RS REST 框架,包含在 Java EE 6 中,但很容易安装在 Java EE 5 或任何 servlet 容器中,非常棒。可以说,Servlet 3.0 应该是这样的。但我不知道有什么书。

【讨论】:

问题是当您准备好投入生产时,应用服务器的状态是什么。如果一个给定项目需要 6 个月后,Oracle 和 JBoss 很可能拥有符合 JEE6 的服务器,而 Resin 很可能拥有 JEE6 Web Profile 服务器。 嗯,JBoss 将于 12 月到期。甲骨文处于低位。 Resin 对他们的 web 配置文件实施保持沉默。 Geronimo 用于 Web Profile 3.0(测试版)。 Glassfish 已在 3.0.1 中推出,非常好。【参考方案5】:

如果您只想用 Java 创建 Web 应用程序,请查看Play Framework。它类似于“Ruby on Rails”

【讨论】:

【参考方案6】:

我不会评论其他技术,但如果您想学习 Hibernate,请阅读 Cameron McKenzie (www.hiberbook.com) 的“Hibernate Made Easy”。值得全力投资。你可以在 2 天内(字面意思)读完那本书。这就像一本小说,最后你会发现自己像半专业人士一样处理 Hibernate。

【讨论】:

【参考方案7】:

对于 Tomcat,请阅读网站上的 manual。这很棒。特别是关于网络应用组织和部署的前几章,以及关于 Servlets API 和 JSP 的章节。

对于 Spring,Manning 的《Spring in Action》一书非常好。 Hibernate (曼宁的书)也是如此,但我认为 Hibernate 主要超出了 webapps 的范围。不过,您的电话。

Wicket - 曼宁书也。但实际上,只需用 javascript 编写前端代码。 IMO,它会不那么痛苦。

【讨论】:

以上是关于在 Java EE 6 中制作 Java Web 应用程序需要学习啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Maven - Java EE 6 Web 配置文件 Javadocs

Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules

登录后如何正确注销 Java EE 6 Web 应用程序

Java EE 6 安全性和重定向

Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules ???报错!!!

错误:Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web