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框架。
最常见的JSF实现是Mojarra和MyFaces。(Luiggi现在在这方面打败了我,你可以检查他的链接)。
[奖金]你会建议学习jsp还是jsf?
我会推荐两者。JSP第一,JSF之后。
但是我会100%推荐你使用JSF为你的项目。但是请确保您了解组件化以及使JSF成为强大工具的所有内容。
另请查看 JSF 2.2 的新功能,此页面对于介绍添加到框架中的最新功能非常棒。