[英]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.