官方JSP教程在哪里?

我现在必须记住如何创build自定义标记库,并且由于我正在使用servlet 3.0,所以我决定查看官方的JavaEE6教程。 让我惊讶的是,在JavaEE6教程中没有关于JSP的内容。

另一方面, JavaEE5教程中有足够的信息。

看来JSF现在被认为是JavaEE中唯一的视图技术,尽pipe我不知道JSP会被弃用( q1 :是吗?)。

我试图寻找一个单独的教程,但网站是一团糟(我find了关于JSP的页面,但它仍然说“Java 2平台,企业版”。

那么, q2 :JavaEE6的官方JSP教程在哪里?

(我当然会使用JavaEE5教程,但这似乎很奇怪)

看来JSF现在被认为是JavaEE中唯一的视图技术,尽pipe我不知道JSP会被弃用(q1:是吗?)。

JSF不是一个视图技术。 JSF是一个基于组件的MVC框架。 作为视图技术的JSP在Facelets成功的Java EE 6中。 Java EE 6教程中的Facelets介绍声明如下:

以前用作JavaServer Faces表示技术的JavaServer Pages(JSP)技术不支持JavaServer Faces 2.0中提供的所有新function。 JSP技术被认为是JavaServer Faces 2.0的一个被弃用的表示技术。 Facelets是JavaServer Faces规范的一部分,也是构build基于JavaServer Faces技术的应用程序的首选演示技术。

它确实没有明确地说,对于Java EE来说,纯粹的“纯粹的”JSP已经被弃用了。 Oracle正在试图推动JSF的发展。 无可否认,这是自己的优势。 值得注意的是,Facelets也可以作为一个独立的视图技术,与FacesServlet相结合,或者是由第三方的基于MVC框架的请求(只有一些不需要JSP taglibs)提供。 您可以将FacesServlet映射到*.xhtml ,基本上只需使用<ui:xxx>标记(而不是旧JSP中的<jsp:xxx> ),就像在JSP中一样,使用普通的vanilla HTML。 使用Facelets时,不一定需要 JSF核心和html标签。

我试图寻找一个单独的教程,但网站是一团糟(我find了一个关于JSP的页面,但它仍然说“Java 2平台,企业版”,所以,q2:哪里是JavaEE6的官方JSP教程。

没有。 只需抓住Java EE 5之一 ,甚至是J2EE 1.4之一 。 JSP并没有改变那么多。 与JSP 2.1相比,JSP 2.2中基本上没有新的东西。 EL 2.2只有一个主要的改变(对方法参数的支持)。 与JSP 2.0相比,JSP 2.1也是如此。 主要的变化是仅在EL(支持从JSF 1.0 / 1.1接收的延迟EL)。

通过Java EE 5教程学习JSP时不需要害羞,更不用说J2EE 1.4教程了。 您不应该再回到JSP 1.2 / J2EE 1.3之前,也就是在JSP中不存在EL时。 你不想那么:)

看来JSF现在被认为是JavaEE中唯一的视图技术,尽pipe我不知道JSP会被弃用(q1:是吗?)。

从新的Java EE 7教程(2013年6月)中,我们可以发现JavaServer Faces技术正是构buildWeb应用程序的用户界面框架。 在第1-18页,我们也可以find以下的说明:

Java EE 7平台需要JavaServer Pages 2.3以兼容较早的版本,但build议在新应用程序中使用Facelets作为显示技术。

这意味着,JSP尚未弃用,但只是未经推荐。 我们还应该考虑到,JavaServer Faces技术API直接位于Servlet API之上,因此可以成为JSP的替代品。 下图显示了这种情况。

Java Web应用程序技术 – Java EE 7教程

那么,q2:JavaEE6的官方JSP教程在哪里呢?

正如我们可以在Java EE 7教程(2013年6月,第1-18页)中阅读:

有关JSP技术的信息,请参阅http://docs.oracle.com/javaee/5/tutorial/doc/上的“Java EE 5教程”。

这个技术的唯一官方手册是Java EE 5教程

我只是想学习JSP,但后来碰到这个post。 所以我做了我自己的挖掘。 Java EE 6的一行说明了这一点:

“作为JavaServer Faces 2.0的一部分提供的Facelets技术现在是构build基于JavaServer Faces技术的Web应用程序的首选演示技术。”

在我看来,如果有人打算从头开始学习或实现,那么使用Facelets比JSP更好,至less如果使用JSF的话。

如果您熟悉ASP.NET,则可以使用以下类比来获得更好的想法:

JSF = ASP.NET MVC(一个MVC框架)

最初由ASP.NET MVC使用的JSP = ASPX视图引擎。 该视图文件具有*.aspx后缀。

Facelet =一个全新的Razor视图引擎,反对ASPX引擎。 该视图文件具有*.cshtml*.vbhtml后缀。

而根据这里 :

JSP技术被认为是for JavaServer Faces的不赞成使用的表示技术。

因此,JSF只被弃用。 在像Spring MVC这样的其他框架中,JSP仍然很好用。

还有一个远程相关的链接比较Razor视图引擎和ASPX视图引擎。

在这一点上,JSP并没有被废弃,就像在另一个答案中提到的那样,它们在JSF中被弃用了。

它们仍被Oracle列为Java EE 7的技术,请参阅此链接 。 此外,它们仍然列在官方Java EE 8规范的JSR 366中。