繁体   English   中英

Java EE 6:JSF与Servlet + JSP。我应该学习JSF吗?

[英]Java EE 6: JSF vs Servlet + JSP. Should I bother learning JSF?

我试着通过阅读http://java.sun.com/javaee/6/docs/tutorial/doc/gexaf.html来熟悉Java EE 6。 我对JSF的使用有点困惑。
通常,我开发Web App的方式是,Servlet就像一个控制器,JSP就像一个MVC模型中的View。 那么JSF是否试图取代这种结构? 以下是上述教程的引用:

Servlet最适合面向服务的应用程序和面向表示的应用程序的控制功能,如调度请求
JSF和Facelet更适用于生成像XHTML这样的标记,并且通常用于面向表示的App

不确定我是否理解上述引用,他们没有解释什么是面向服务与面向表达。

JavaServer Faces应用程序可以将HTTP请求映射到特定于组件的事件处理,并将组件作为服务器上的有状态对象进行管理。

任何知识渊博的Java开发人员可以给我一个关于JSF,JSP和Servlet的快速概述吗? 我是否将它们全部集成在一起,还是在应用程序中将它们分开使用? 如果是这样,那么与Servlet和JSP相比,什么样的应用程序使用JSF

JavaServer Faces应用程序可以将HTTP请求映射到特定于组件的事件处理,并将组件作为服务器上的有状态对象进行管理。

听起来像servlet可以做什么,但不确定将manage components as stateful objects on the server 甚至不确定这是什么意思? 提前致谢。

JSF基本上使您能够开发仅包含模型对象(JavaBeans)和视图(JSP / XHTML页面)的Web应用程序。 使用“普通的vanilla”JSP / Servlet,您必须引入大量代码来控制,预处理,后处理,收集数据,验证,转换,监听等HTTP请求和响应。 然后我不是在谈论将它重构为高(抽象)程度,这样你也可以像JSF那样结束(每个用例只是一个JavaBean类和一个JSP / XHTML页面)。

我在此之前已经发布了关于这个主题的更详细的答案: JSF,Servlet和JSP有什么区别?

在JSF中,使用一个特定的Servlet(Faces Servlet)来处理所有传入的请求并将它们分派给适当的bean。

JSF是一个基于组件的MVC框架,而JSP是一种视图技术。
虽然Facelets是首选的视图技术,但您可以将JSP与JSF一起使用。

JSF提供了一个具有多个职责的抽象层,但最重要的是它处理HTML表单的所有混乱细节,并在Web页面和Java POJO bean(getX,setX方法)之间来回传输数据,这是众所周知的难以做到的。

它还提供导航功能,并在Java EE 6的最新版本中提供基本的AJAX支持,允许在用户输入数据时对网页进行简单更新。

您可能会发现将其视为一种避免自己编写JavaScript的方法更容易。

如果您喜欢XML,请选择JSF。 如果你是actionlistener粉丝doPost,doGet等选择Servlet和JSP。

JSF Framework旨在简化基于Web的用户界面的开发集成。 正如@bozho所说,你可以混合使用JSP和JSF。 然而,JSF中的“视图”组件是facelets - 可以看作是小UI小部件,它们或多或少地包含在DHTML样式和JavaScript事件生成和回调方面。

“我应该打扰学习......?”

不确定。 我还没有看到JSF在过去的5年中获得了大量的动力,即使它已经存在(理论上的最新)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM