Java EE vs JSP vs JSF
收藏

我希望学习用于开发Web应用程序的Java技术。当我进一步研究时,我对jsf,jsp和javaee感到困惑。我知道SO上有几篇文章(第1篇,第2篇)试图解决这些困惑,在它们之上我还有其他几点:

  1. JSP是否支持JSF?
  2. Java EE是JSF平台之上运行还是完全不同?
  3. JSF仅仅是用于开发Web应用程序的MVC框架吗?
  4. JSF是由Oracle开发并且是Java的一部分的框架,还是完全独立的框架(就像Zend Framwork来自PHP)?
  5. [奖金]您会建议学习jsp或jsf吗?

在您的回答中,可以将这些技术中的任何一种与ASP.NET,ASP.NET MVC,Ruby on Rails,Zend Framework或常规的Java Applets等进行比较,因为这些都是我已经熟悉的东西。

感谢您的时间。

最佳答案

JSP是否支持JSF?

与JSP相比,JSF具有无数好处。例如:

  • 它定义了一种MVC方法
  • 建立组件化标准
  • 具有应用价值功能
  • 内建AJAX
  • 定义的视图上下文控件
  • 允许丰富的界面扩展,例如Primefaces

我们可以继续下去。

您仍然可以将JSP用于需要某些特定灵活性或性能的其他场景,并且对于servlet同样使用,但是JSF几乎将JSP替换为“健壮”的应用程序。

现在,我是JSF的忠实拥护者,但是还有很长的路要走。现在,JSF 2.2有点像成熟的框架,它具有已定义的导航标准(FacesFlow),而我们在2.1中只有一个内置的文件上传器,它甚至不是AJAX,还有“ HTML5”等。所以,还有很多工作要做,我在这里不做详细介绍。

以我的经验,与JSF和其他框架(如Spring MVC等)相比,JSP实际上是“死胡同”。 Java EE 7教程几乎没有涉及JSP。但是,它并不是万无一失,因为Web容器已支持它,并且您仍然可以使用它。

Java EE是JSF平台之上还是其他平台?   共?

JSF是Java EE的一部分,但是您不需要完整的Java EE配置文件即可使用JSF。例子:

  • Tomcat只是Java EE Web Profile实现,您可以使用
  • Tomcat中的JSF。
  • 您可以在JBoss中使用JSF,但不需要启用JMS即可运行JSF。

Java EE组件是模块化的,只需要一个Web Profile服务器/容器即可使用JSF。

JSF仅仅是用于开发Web应用程序的MVC框架吗?

是的(但我不会仅说)。每个人都有其优点和缺点。但是原理是一样的。

人们可能会争论与EJB的集成,但是带有自己的容器的Spring MVC也是如此。

JSF是Oracle开发的框架并且是Java的一部分吗?   完全独立的框架(就像Zend Framwork来自   PHP)?

Oracle现在委托团队来定义规范。从理论上讲,您可以根据需要实现自己的JSF。我不了解PHP的Zend Framework。

最常见的JSF实现是Mojarra和MyFaces。 (Luiggi现在在这方面击败了我,您可以检查他的链接)。

[奖金]您会建议学习jsp或jsf吗?

我都推荐。首先是JSP,之后是JSF。

但是我100%建议您在项目中使用JSF。但是请确保您了解组件化以及使JSF成为强大工具的所有知识。

还请查看JSF 2.2的新功能,该页面非常棒,它介绍了添加到框架的最新功能。

    公众号
    关注公众号订阅更多技术干货!