一尘不染

Java EE Web开发,我从哪里开始?我需要什么技能?

jsp

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

我到底需要学习什么?

Tomcat似乎是Java的良好Web服务器。

网络有哪些选项?我知道在ORM中有Hibernate

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

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


阅读 310

收藏
2020-06-08

共1个答案

一尘不染

(于2020年3月更新)

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

我到底需要学习什么?

我假设您已经熟悉诸如HTMLCSSJS之类的客户端技术,因此在此不再赘述。我还假设您已经熟悉基本的Java。遵循Oracle的Java教程,如果可能的话,也可以获取OCP书籍或课程。

然后,您可以从JSP / Servlet开始学习Java Web开发的基本概念。好的教程可以在Oracle的Java EE
5教程第二部分第3章至第8章
以及Coreservlets.com(初学者,中级高级,也包括JDBC)中找到。请注意,自Java EE
6起,为了支持JSF而从JavaEE教程中删除了JSP,此后,JSP基本上没有改变。因此,您可以安全地使用相当古老的Java EE
5教程。关于JSP的最重要的事实是,自2003年以来,正式禁止使用<%scriptlet
在JSP文件中编写纯Java代码%>。另请参见如何避免在JSP文件中使用[Java代码? 因此,任何仍覆盖脚本的教程都应跳过,因为它们肯定会使您陷入学习不良做法的螺旋式下降。


Tomcat似乎是Java的良好Web服务器。

它是。但是,它的功能有限。它基本上是一个准系统的servlet容器,仅实现了巨大的Java EE API的JSP /
Servlet部分。如果您想使用EJB或JPA,那么您想选择另一个,例如WildFlyTomEEPayaraLibertyWebLogic等。否则,您必须使用Spring而不是Java
EE。也就是说,如果不修改核心引擎就无法在准系统servlet容器中安装EJB,以防Tomcat基本上是在重塑TomEE。另请参见JavaEE到底是什么?,如何通过Maven正确安装和配置JSF库?以及如何在Tomcat上安装和使用CDI?


我知道在ORM中有Hibernate。

以前,在J2EE时代,当JPA不存在并且EJB2糟糕时,Hibernate是一个独立的框架,经常与Spring结合使用以取代EJB。自从Java EE
5(2006)中引入JPA以来,Hibernate已成为JPA实现。您可以在Jakarta EE教程第八部分中学习JPA。此外,基于从Spring中学到的经验教训,EJB3得到了很大的改进。


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

您可以,但是在将模型与视图(转换,验证,更改侦听器等)联系起来时,这是对轮子的大量改造。JavaEE的MVC框架称为JSF。在JavaEE6之前,它曾经在JSP上运行,这是相当传统的视图技术。JSP已被Facelets取代。您可以在JakartaEE教程第三部分第7-17章中学习JSF。您也可以在Tomcat上使用JSF,只需要单独安装即可。安装说明可以在Mojarra主页上找到。WildFly,TomEE,Payara,Liberty,WebLogic等作为完整的Java
EE实现,已经提供了JSF(以及CDI,BV,JSONP,JAX-RS,EJB,JPA等),因此您不需要单独安装。


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

有几本书。我建议先从一本书侧重于雅加达EE一般来说,一本书更侧重于JSF,和一本书更侧重于JPA。确保选择涵盖该主题的最新书籍。首先调查最新的可用版本,然后确保所选择的书涵盖了该版本。因此,尽管目前已经有Jakarta EE 8和JSF
2.3可用,但是绝对不要选择Java EE 5或JSF 1.0左右的旧书。

最后但并非最不重要的一点,请忽略业余爱好者维护的代码片段抓取网站,这些网站主要关注广告收入而不是教学,例如roseindia,tutorialspoint,javabeat,journaldev,javatpoint,codejava等。通过扰乱广告链接/可以轻松识别它们。标语和包含_scriptlet的_ JSP代码段。

2020-06-08