Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaEE6:JSF与Servlet+;JSP。我应该费心学习JSF吗?_Java_Jsp_Jsf_Servlets_Jakarta Ee - Fatal编程技术网

JavaEE6:JSF与Servlet+;JSP。我应该费心学习JSF吗?

JavaEE6:JSF与Servlet+;JSP。我应该费心学习JSF吗?,java,jsp,jsf,servlets,jakarta-ee,Java,Jsp,Jsf,Servlets,Jakarta Ee,我试图通过阅读来熟悉JavaEE6。我对JSF的使用有点困惑。 通常,我开发Web应用程序的方式是,Servlet将充当控制器,JSP将充当MVC模型中的视图。那么JSF是否试图取代这种结构呢?以下是上述教程中的引用: Servlet最适合面向服务的应用程序和面向表示的应用程序的控制功能,如调度请求 JSF和Facelet更适合生成类似XHTML的标记,通常用于面向表示的应用程序 不确定我是否太理解上面的引语,他们没有很好地解释什么是面向服务的还是面向表示的 JavaServerFaces应用程

我试图通过阅读来熟悉JavaEE6。我对JSF的使用有点困惑。
通常,我开发Web应用程序的方式是,Servlet将充当控制器,JSP将充当MVC模型中的视图。那么JSF是否试图取代这种结构呢?以下是上述教程中的引用:

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

不确定我是否太理解上面的引语,他们没有很好地解释什么是面向服务的还是面向表示的

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

任何有知识的Java开发人员都可以给我一个关于JSF、JSP和Servlet的快速概述?我是将它们全部集成,还是在应用程序上单独使用它们?如果是这样,那么与Servlet和JSP相比,什么样的应用程序使用JSF呢

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


听起来像servlet可以做什么,但不确定
是否将组件作为服务器上的有状态对象管理。甚至不知道那是什么意思?提前感谢。

JSF提供了一个抽象层,其中有几个职责,但最重要的是,它处理HTML表单的所有混乱细节,并在网页和Java POJO bean(getX,setX方法)之间来回传输数据,这是出了名的困难

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


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

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

JSF是一种基于组件的MVC框架,而JSP是一种视图技术。

虽然Facelets是首选的视图技术,但您可以将JSP与JSF结合使用。

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


在此之前,我已经发布了关于这个主题的更详细的答案:

JSF框架的目标是简化基于web的用户界面的开发集成。正如@bozho所说的,您可以混合使用JSP和JSF。然而,JSF中的“视图”组件是facelets,可以将其视为小UI小部件,在DHTML样式和JavaScript事件生成和回调方面或多或少是自包含的

“我是否应该费心学习……”


不确定。我还没有看到JSF在过去的5年中获得如此大的发展(至少在理论上是如此)。

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

sry我应该在发布之前查看一下。我一定会读你的帖子。但是从我现在读到的。JSF更像是一个对开发人员隐藏很多实现的框架,在某种程度上,它比Servlet/JSP要好一点。我说的对吗?JSP/Servlet只是开发Java Web应用程序的基本/core/buildstone技术。任何基于Java的MVC框架都运行在JSP/ServletAPI之上,JSF也是如此。JSF提供了
FacesServlet
(是的,它是一个servlet!),您只需在
web.xml
中定义一次即可。然后,您可以只使用模型对象和视图来开发/运行JSF,它们确实是竞争对手。但是,SpringMVC的组件库不如JSF的多。请注意,“Spring”!=“SpringMVC”。Spring框架有很多,不仅仅是SpringMVC。关于SpringMVC和JSF:好吧,看看你周围的工作趋势。选择要求最多和/或报酬最高的一个。你总是可以在私人/业余时间学习其他框架。@Harry:Javascript在过去一年半的时间里,在性能方面变得更快了。看起来你只是在这些趋势的开始,现在随着html5的发展,我们真的想远离javascript吗?他没有说远离javascript。将JSF与Richfaces或Icefaces等像样的组件库一起使用意味着您自己编写的JS会少一些。有趣的是,想知道JavaEE6是否能为JSF带来一些动力。