【问题标题】:WHich is the best path or flow to learn java from web site perspective哪个是从网站角度学习 Java 的最佳途径或流程
【发布时间】:2011-06-05 19:12:33
【问题描述】:

我刚开始学习 java,我有大约 8 个月的时间。我的主要目标是使用 java 构建 Web 应用程序。但是由于有许多可用的 java 技术/框架,我很困惑我应该怎么去 我使用的IDE是eclipse

我想的路径在下面

1)Learn Core Java
2)Project: Build Java Invoicing System with JDBC or mysql to test java knowledge

3)Learn Servlets / JSP to 
4)Build small site like simple logon/memberarea/catalogue using servlets/jsp

现在伙计们,我真的不知道以下事情在我的道路上的位置以及它们会帮助哪些事情

1)Java EE
2)Spring or spring MVC, what's the difference?
3)Hibernate
4)Wicket
5)Struts

我真的不知道我应该如何学习这些以及从中选择哪些东西。

什么应该是我可以使用这些构建的最终项目,因为如果我从当前阶段看到,甚至可以使用 servlets/jsp 构建网站。那我为什么需要那些其他技术

谁能给出一个可以使用新技术而不是使用 jsp/servlet 构建的项目示例,以便我了解我们为什么需要这些?

【问题讨论】:

  • 查看这篇文章和它的第一个答案stackoverflow.com/questions/1958808/…
  • 您能否在您的问题中也包括您为什么真的想学习 Java 进行 Web 开发? IMO 将有助于推荐有关 J2EE 与非 J2EE 技术的具体路径。
  • 我用php开发网站。很少有客户想用 Java 构建网站,这就是原因。该网站是使用 java 的电子商务网站

标签: java jakarta-ee frameworks


【解决方案1】:

这里有很多东西要学,所以我会一次一点。我假设您对 Java 语言和核心 API 比较熟悉。

首先了解 JDBC 和数据库。获取一个基本的功能 JDBC 示例应用程序(不是可视的,只是一些普通的 Java 应用程序),它可以读取/插入/更新/删除表中的某些记录。这将为您构建您选择的任何应用程序奠定基础。几乎所有有趣的应用程序都涉及某种持久性/数据库。

了解主要的 JDBC API(Connection、PreparedStatement、ResultSet)并编写一些使用这些 API 的代码来熟悉。

了解事务在数据库中的工作原理(如果您还不熟悉)以及 JDBC 如何使用它们(Connection.commit 和回滚)

接下来你可以看看 spring 框架。这有几个有用的功能,在构建这些应用程序时会派上用场。主要了解依赖注入功能和它拥有的 JDBC 库。 DI的东西有点“呃”?如果您以前没有使用过它,但它非常有用/强大,尤其是对于中型 + 应用程序。 JDBC 库有助于处理原始 JDBC API 的麻烦,并使您的代码不易出错。

一旦你搞定了一些基本的 JDBC 和 Spring 的东西,你就可以开始引入一个 Web 框架了。

这比较困难,因为有很多。为了让某些东西快速启动并运行,我可能会选择 Wicket。它运行在像 Jetty 这样的 servlet 容器中,只需一两个基本网页即可轻松启动和运行,并且随着时间的推移,项目相对容易演变,不会走太多死胡同。我发现像 JSF(Java EE 默认的 web/view 框架)这样的框架需要大量的前期投资才能继续运行。这些框架中的大多数,包括 Wicket,都可以利用上面提到的 spring 内容。

避免使用 JSP,它是一种令人不快的技术,而且几乎已经过时。

回答你的其他一些观点。

Hibernate 是一种将对象模型映射到关系模型的工具。在它的最基本形式中,您为每个 DB 表定义一个 Java 类,该类为每个 DB 列具有一个 Java 属性(变量+getter+setter)。您还可以将一个类的引用添加到另一个类以模拟数据库关系。这很好,但需要一点时间来适应。

我在上面已经部分解释了春天。 Spring 不仅仅是 DI 和一些 JDBC 库。它还有事务管理库和许多其他东西。 Spring MVC 是一个 Web 框架,它位于 Spring 的保护伞下,并在内部使用了许多 Spring 库。没用过,无法评价。

Java EE 是大量“企业”规范/库的总称。 JSF 是一个 Web 视图框架,它是 Java EE 的一部分。

这是我非常高级的建议。总而言之,我将学习基本的 DB/JDBC,然后学习一些 spring 的东西,然后开始使用你已经学到的东西来构建一个基本的 web 应用程序。

希望对您有所帮助。网络上有大量关于所有这些主题的信息,如果您需要帮助,您可以随时在此处就更具体的部分提出问题。祝你好运,尽情享受!

编辑(解决评论):

以上所有内容都是我对如何学习 Java Web 开发的建议/意见。

总结

  • 学习 JDBC/事务/数据库是必须的
  • 弹簧是可选的,但我强烈推荐。 Spring 是一个大图书馆,但您可以挑选自己喜欢/需要的部分。
  • Web 框架确实是您的选择。从我尝试过的(JSF/JSP/Wicket)来看,Wicket 是最容易上手的,因此您不会花太多时间对初始设置感到沮丧。 JSP 很糟糕,很容易把它弄得一团糟。 JSF 功能强大但很重,可能比第一个 Web 应用更适合非常有进取心的项目。
  • Hibernate 是可选的,但可以让生活更轻松,因为您可以在执行 DB 查询/更新时使用 Java 对象,而不是编写乏味的插入/更新语句。 Hibernate 不是唯一这样的工具,但它是我使用最多的工具,并且做得很好。只是不要一开始就使用“聪明”的休眠功能。

您可以轻松地使用 Spring MVC 代替 Wicket。这可能是一个非常好的选择,我自己没有使用过 Spring MVC,所以无法评论。我相信它会很好地与 spring 结合起来,所以这肯定是一个积极因素。

如果您不确定,请进行更多研究,乐于发表意见的人永远不会停止!但实际上你只需要潜入并尝试一些东西。

【讨论】:

  • 嗯,非常感谢,这是非常好的答案。所以你的意思是别无选择,我必须学习spring+spring MVC + Wicket + Hibernate。或者我可以将 wicket 和 JSF 排除在外,因为 Spring MVC 也是 Web 框架。你确定我不需要花太多时间在 JSP 上。我也可以学习struts2.1而不是spring。
【解决方案2】:

你是对的。如果您的所有应用程序都由 servlet、JSP 和 JDBC 提供服务,那么您可能不需要学习其他任何东西。

我建议您先学习基础知识,然后再深入了解您不了解的框架。这是一件好事。

但是,如果您对这些技术感到厌烦,也许看看这些其他技术可以帮助您改进游戏。

1)Java EE

当您使用 servlet、JSP 和 JDBC 时,您正在学习(部分)Java EE。它们是完整 Java EE 机制的子集 - EJB、JMS、JNDI 等。

2)Spring 或 Spring MVC 是什么 区别

Spring 是由 Rod Johnson 和 Springsource 开发的替代框架,现在是 VMWare 的一部分,它基于依赖注入、面向方面的编程和框架模块。 Spring Web MVC 是 Spring 框架中的一个模块,基于 servlet,充当 Web 应用程序的前端。

3)休眠

一种对象关系映射技术 (ORM),建立在 SQL 和 JDBC 之上,可让您将对象映射到表。它有自己的基于对象的查询语言。

4)检票口

另一个 Web MVC 替代 Spring MVC、Struts、JSF 等。

5)支柱

第一个 Web MVC 框架。它经历了 1.0 和 2.0 版本,现在已经被 Java Server Faces 提供。不过,它仍然在使用。与 Java 中的所有其他 Web MVC 框架一样,它基于 servlet 和 JSP。

【讨论】:

    【解决方案3】:

    从 Java 的角度来看,最好开始研究 Java EE。您提到的所有其他技术都是替代技术,如果您认为标准框架提供的不是您的一杯茶,这可能对您有用。但要做出这样的决定,至少知道标准框架是关于什么的从来都不是一个坏主意。

    说实话,在 2006 年之前,标准框架的名声很差,一些构成推荐替代技术基础的观点仍然基于此。从版本 5 开始,Java EE 得到了显着改善。最新版本 Java EE 6 可以说是目前最好的 Java 框架之一。当然,最好的是一个高度主观的术语,自然不会是对每个人来说都是最好的。

    无论如何,Java EE 6 都是一个非常完整的框架,它允许编写大量应用程序,而无需依赖任何额外的库。作为标准框架,大多数其他框架至少依赖于它的某些部分。

    大多数情况下,EJB、CDI 和 JSF 都被替代技术所取代。例如。核心 Spring 容器替换 EJB 和 CDI,Spring MVC 替换 JSF。一个完整的 Spring 堆栈通常仍然使用来自 Java EE 的 JPA、JTA、JMS 和 Servlet。 Wicket 仅替换 JSF,或者当与 Spring 堆栈一起使用时替换 Spring MVC。

    Hibernate 是一个特例。它不会取代 Java EE 中的任何东西,而是经常用作 Java EE 的关键 API 之一的实现:JPA。 Hibernate 的最初创建者 Gavin King 是 Java EE 框架的主要支持者之一,实际上是现代 Java EE 最重要的部分之一:CDI 的规范负责人。

    Wicket 本身是一个非常好的 Web 框架,但实际上它不像 JSF 那样经常使用。我不会讨论 Wicket 或 JSF 是否“更好”(无论如何这主要是一场宗教斗争),但由于 JSF 的流行,有更多的人体验过它,并且有一个大型社区提供很多东西用于 JSF 之类的组件库和扩展。

    Struts 在历史上已被 JSF 完全取代。最初的创建者或 Struts Craig McClanahan 是作为 Struts 的继承者创建 JSF 的人。尽管如此,Struts 曾经是 Java 中 Web 框架的绝对事实标准。通常不建议将它用于新项目,但直到今天它仍然用于大量现有应用程序。因此,即使学习 Struts anno 2011 的知识并不是真的“热”,但当您必须维护现有应用程序时,它可能仍然非常实用。

    ps

    有关 Java EE 的一般描述请参见此答案:Frameworks for Layering reusable Architectures

    【讨论】:

      【解决方案4】:

      我敢肯定,没有人能认真地告诉你最好的方法,因为这意味着他会尝试所有方法。 为什么您想学习 Java Web 应用程序框架?只是为了学习它为(下一个)工作做好准备?在这种情况下,您很可能学错了。

      下一个问题是您想用 Web 应用程序框架做什么。你想让一个网站有点活跃吗,例如使每个页面看起来相似(企业设计),从内部结构自动生成菜单,或者您想编写一个真正的网络应用程序,例如具有数据库访问权限。

      我会首先定义您想要实现的目标。恕我直言,激励您改正的好方法是进行一个小项目,帮助您解决一个小问题。

      然后我将从 Java Server Pages (JSP) 和 servlet 开始了解基本概念。然后你可以尝试对一些著名的 Web 应用程序框架做同样的事情,例如检票口。

      【讨论】:

        猜你喜欢
        • 2011-01-18
        • 1970-01-01
        • 2011-06-24
        • 2022-06-14
        • 2010-09-27
        • 2011-10-04
        • 2019-06-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多