ChatGPT解决这个技术问题 Extra ChatGPT

Java / Jakarta EE Web 开发,我从哪里开始,我需要什么技能? [关闭]

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您认为此问题可以改进并可能重新打开,请访问帮助中心获取指导。 10年前关闭。

我想至少在基本层面上学习如何构建 Java Web 应用程序(来自 .NET 背景)。我希望能够从头开始构建、部署一个简单的 CMS 类型的应用程序。

我究竟需要学习什么?

Tomcat 似乎是一个很好的 Java 网络服务器。

网络有哪些选择?我知道 ORM 有 Hibernate

Java有MVC吗? JSP 呢? MVC和JSP可以在一起吗? NetBeans

也许一本书涵盖了所有这些?


2
29 revs, 2 users 89%

(2021 年 4 月更新)

首先,“Java EE”自 2019 年 9 月起已重命名为“Jakarta EE”,从版本 8 开始。历史上,“J2EE”一词也涵盖了 1.2 至 1.4 版本。 “Java EE”涵盖了版本 5 到 8。另请参见 Java Platform, Enterprise Edition, History on Wikipedia

我究竟需要学习什么?

我假设您已经熟悉 HTMLCSSJS 等客户端技术,因此我不会对此进行详细介绍。我还假设您已经熟悉基本的 Java。遵循 Oracle 的 The Java Tutorials,如果可能,还可以参加 OCP book 或课程。

然后可以从 JSP/Servlet 开始学习 Java Web 开发的基本概念。好的教程可以在 Jakarta EE tutorial chapter 18 'Jakarta Servlet Technology' 中找到。请注意,自 Java EE 6 以来,JSP is removed from the tutorial in favor of JSF 和 JSP 从那时起基本上没有改变。这就是您可以安全地使用相当旧的 Java EE 5 tutorial 的原因。关于 JSP 最重要的一点是,自 2003 年以来,官方不鼓励使用 <% scriptlet %> 在 JSP 文件中编写纯 Java 代码。另请参阅 How can I avoid Java code in JSP files, using JSP 2? 因此,应跳过任何仍涉及 scriptlet 的教程绝对会让你陷入学习不良做法的恶性循环。

在 Stack Overflow 上,您还可以找到关于 JSPServletsJSTLEL 的精彩 Wiki 页面,您可以在其中了解基本知识并找到更多有用的链接。

Tomcat 似乎是一个很好的 Java 网络服务器。

这是。然而,它的能力有限。它基本上是一个准系统 servlet 容器,只实现了庞大的 Java EE API 的 JSP/Servlet 部分。如果您想使用 EJB 或 JPA,那么您想选择另一个,例如 WildFlyTomEEPayaraLibertyWebLogic 等。否则您必须使用 Spring 而不是Java EE。即不可能在不修改核心引擎的情况下将 EJB 安装在准系统 servlet 容器中,如果 Tomcat 基本上是在重新发明 TomEE。另见 What exactly is Java EE?How to properly install and configure JSF libraries via Maven?How to install and use CDI on Tomcat?

我知道 ORM 有 Hibernate。

以前,在 J2EE 时代,JPA 不存在,EJB2 很糟糕,Hibernate 是一个独立的框架,经常与 Spring 结合使用以取代 EJB。自 Java EE 5 (2006) 中引入 JPA 以来,Hibernate 已成为 JPA 实现。您可以在 Jakarta EE tutorial part VIII 学习 JPA。此外,基于从 Spring 中吸取的经验教训,EJB3 得到了很大改进。另见When is it necessary or convenient to use Spring or EJB3 or all of them together?

Java有MVC吗? JSP呢? MVC和JSP可以在一起吗? JavaBeans?

You can,但是在将模型与视图绑定(转换、验证、更改侦听器等)时,这就是很多 reinvention of the wheel。 Jakarta EE 的 MVC 框架称为 JSF。在 Java EE 6 之前,它曾经在 JSP 上运行,这是一种相当遗留的视图技术。 JSP 被 Facelets 取代。您可以在 Jakarta EE tutorial part III chapters 7 - 17 学习 JSF。顺便说一句,你也可以在 Tomcat 上使用 JSF,你只需要单独安装它。安装说明可在 Mojarra homepage 中找到。 WildFly、TomEE、Payara、Liberty、WebLogic 等作为完整的 Jakarta EE 实现已经提供了开箱即用的 JSF(和 CDI、BV、JSONP、JAX-RS、EJB、JPA 等),所以您不需要单独安装。另见How to properly install and configure JSF libraries via Maven?

也许一本书涵盖了所有这些?

有几本书。我建议从一本书 focused on Jakarta EE in general、一本书 more focused on JSF 和一本书 more focused on JPA 开始。确保您选择涵盖该主题的最新书籍。首先调查最新的可用版本,然后确保所选书籍涵盖该版本。因此,当目前已经有 Jakarta EE 8 和 JSF 2.3 可用时,绝对不要选择 Java EE 5 或 JSF 1.0 左右的旧书。

最后但同样重要的是,请忽略由业余爱好者维护的代码片段抓取网站,这些网站主要关注广告收入而不是教学,例如 roseindia、tutorialspoint、javabeat、journaldev、javatpoint、codejava 等。它们很容易被干扰的广告链接识别/包含 scriptlet 的横幅和 JSP 代码片段。

也可以看看:

JSF、Servlet 和 JSP 有什么区别?

servlet 是如何工作的?实例化、会话、共享变量和多线程

当可以使用 jQuery 和 AngularJS 等 JavaScript 库来实现 UI 时,需要 JSF 吗?


太棒了!有用,谢谢。在.Net 中,通常Wrox Press 的书可以涵盖.net 中的所有知识。很厚的一本书。
StackOverflow 没有 Pin 发布功能吗?希望是这样,所以我可以固定这个答案。谢谢!
必须有 JavaEE 5 教程的替代品。我知道我是个菜鸟,而且你们都很擅长。但是...尝试从该教程中学习。它非常锁定并依赖于某些设置。所以,我需要学习 NetBeans。然后我需要放弃我的服务器并转向 glassfish,试图找到要运行的示例代码并从中学习不是最简单的。我无法在服务器上运行。相反,我遇到了一个叫做 maven build 的东西。我以为我尝试了导致日食变得疯狂!显然我也需要学习maven,还有这个,那个,那个和魔鬼的奶奶......
@brat:答案包含替代方案和书籍的链接。
出色地。只有一个涵盖了很多。 Coreserv ...不得不在这里和那里收集片段。我现在完全使用了官方的 JavaEE tut :) 只是为了找出需要下载的 SDK,运行示例代码有一个 GlassFish 服务器,它不能与 JDK 10 一起工作 :(,启动时出现 NullPointerException。找到了一个 hack stackoverflow.com/questions/47458119/…所以我需要下载......等等等等。我想我只是有点沮丧和讨厌,因为不得不跳过篮球来学习。:(。他们不会让新手 x 变得容易)。干杯: )
a
alex

我究竟需要学习什么?

最低限度,

Java 语言

Java API,包括用于数据库访问的 JDBC

一个 IDE,或者一个文本编辑器 + Ant

Java EE,基本上,servlet 和 JSP

servlet 容器(例如 Tomcat)

Tomcat 似乎是一个很好的 Java 网络服务器。

这是“体面的”。如果您不熟悉 EJB,那么您可能不需要学习其他任何东西。 Glassfish 3 最近似乎很酷,但我还没有玩太多。请注意,它比 Web 服务器“更多”。它是一个 servlet 容器(意味着它可以使用 servlet 技术运行应用程序)。

网络有哪些选择?

大约有无数种不同的框架。真的,选择一个真的很“困难”。尝试所有这些非常诱人,但最终是不可行的。

我知道 ORM 有休眠功能。

我有点反对 ORM,但是如果你需要一个“完整的”ORM,你需要的是 Hibernate。您还可以尝试“部分”ORM,例如 Spring 的 JDBC 支持或 iBatis。

java有MVC吗? JSP 呢? MVC和JSP可以在一起吗?豆子?

是的,大多数 Java Web 框架都使用 MVC。 Spring 的 MVC 很好,但我不能推荐其他任何东西(尤其是 Struts 1!)。 JSP 只是一个 HTML(或 XML)模板引擎。带有嵌入式 Java 代码的老式 JSP 并不酷;带有标记文件和库的现代 JSP 相当不错。

我想大多数框架都会让你使用 JSP 来渲染你的 Vs; Spring 的 MVC 和 Struts 可以。有些也会让你使用其他东西(Velocity、Freemarker 等)。

Beans 只是对象的约定。基本上,这意味着您正在使用 getter 和 setter(或一些替代方法)并且您正在遵循一些规则。这些应该让您的对象被某些工具操作。典型的例子是 GUI,一些工具可以让你构建 GUI 组件来编辑任意 bean(即它们会渲染一个表单来编辑它的字段)。


d
duffymo

您需要 HTML、CSS 和 JavaScript——所有 Web 开发的常见问题。

Tomcat 确实有一个内置的 Web 服务器,但它是一个 servlet/JSP 引擎。 Apache 是纯 Web 服务器。

您需要学习 JSP,它是一种模板语言,用于生成生成 HTML 输出的 servlet。您将希望使用 JSTL 而不是 scriptlet 来编写它们。

如果你在做 CRUD 应用程序,你需要学习 JDBC 和关系数据库。您应该在尝试 Hibernate 或任何其他 ORM 之前这样做,因为这是构建它们的基础。

JavaBean 只是 Java 对象的标准。

如果您愿意,我会推荐 Spring 框架。


你说tomcat确实内置了一个web服务器,那还有什么?我以为它只是一个网络服务器?
@mrblah - Tomcat 是一个 servlet 引擎。它被用来处理 servlet 类(jsp 变成的)并将输出提供给浏览器。除此之外,它还提供所有常规文件(图像、html、css 等),就像 Web 服务器一样。它与带有 php 模块的 Apache 相当。
G
Glorfindel

java有MVC吗?

Java 有不同的框架,例如 Struts2Spring MVC

JSP 呢?

JSP 是模板库。您可以尝试使用 FreeMarkerVelocity 等几种替代方法。 AFAIK Freemarker 是一个新兴的优秀模板库。它比 JSP 轻量级。检查这个 FreeMarkerAn open alternative to JSP - JavaWorld

MVC和JSP可以在一起吗?

我把 MVC 作为前面提到的一个框架。所有框架都支持 JSP,但您需要在各自的框架文档中检查对其他模板库的支持。 AFAIK Struts2 对 Freemarker 有很好的支持。

豆子?

我对此知之甚少。但是使用 bean,我们可以直接将表单数据映射到数据库。

也许一本书涵盖了所有这些?

每个框架都有自己的书。对于 Struts2 - Struts 2 in Action

String MVC - 看看这些为 Spring 和 Spring MVC 推荐书籍的问题。 Book suggestion for Spring frameworkSpring Books: Which one to choose

Fremarker 有一个非常好的文档 - FreeMarker Manual

开始使用 Java 进行 Web 开发 -

https://i.stack.imgur.com/EbsOe.jpg

http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596


A
Avi Flax

我认为大多数传统的 Java Web 开发选项都相当重量级,并且有一些不错的选择:

Play 是一个 MVC 框架,它专注于轻量级、直接和支持快速开发——同时坚持使用纯 Java,而不是更动态的基于 JVM 的语言。它相当新,但已经令人印象深刻,并且很快就围绕它建立了一个良好的社区。

Grails 是一个 MVC 框架,灵感来自 Ruby on Rails,它是用基于 Java 的脚本语言 Groovy 编写并使用的。 Grails 成熟、健壮、广受尊重,拥有强大的社区。 Groovy 基本上是 Java 的超集,具有更好的语法和一些很棒的特性,例如闭包,因此学习它是学习 Java 的好方法。

如果您需要/想要构建 RESTful 网站/服务/应用程序,Restlet 是一个很棒的框架——我是它的忠实粉丝。它简单、直接且灵活。也很棒的社区。

Google 的 App Engine 也是一个有趣的选择。它是托管的,可能感兴趣也可能不感兴趣,但它有一个相当简单的 API 和一个很好的 SDK。

我敢肯定还有其他人,但这些是我能想到的。

祝好运并玩得开心点!


哦,前几天我刚刚发现了 Prudence:threecrickets.com/prudence
m
mr-sk

我是一名 PHP/C 编程人员,我发现 groovy 使我能够在不学习 Java 编程中固有的所有类和范式的情况下跳入 Java。 Groovy 使我能够快速提高工作效率,同时花时间了解更多关于 java 和所有可用工具/框架/库的信息。


m
mokrzu

如果您不习惯使用 html、css、xml、javascript 等。

试试 Vaadin 框架,它有详细的文档,易于学习,并且能够以简单的方式制作漂亮的 UI。 (只是写Java代码,当然你需要一些servlet服务器,Tomcat或者Jetty都可以)


S
SIVAKUMAR.J

最好学习 java。然后学习 Servlets 和 JSP。然后学习 MVC,学习 Struts 或 Spring 或任何其他支持 java/java 的框架。


T
Thorbjørn Ravn Andersen

由于您是 Java 新手,我强烈建议您先学习基本语言。无论您选择使用哪种技术来执行 Web 应用程序,这都会对您有所帮助。

一个很好的在线资源是 Sun Java 教程 - http://java.sun.com/docs/books/tutorial/


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅