javafaces的简单介绍

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

本篇文章给大家谈谈javafaces,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

javaserverfaces中什么在不提交表单的情况下生成值更改事件

Java Server Faces

Java Server Faces_JSF ( JavaServer Faces ) 介绍

javaServer Pages(JSF) 在 Java 的 WEB 编程中已经被认为是下一个重大的事件。通过 JSF ,你可以在网页上使用 WEB 组件,来捕捉用户行为产生的事件。不远的将来,Java 工具将支持这个技术,开发 WEB 应用程序将与我们现在开发 SWING 程序类似:拖放控件、写事件侦听器。本文是一个 JSF 的简要介绍,并且提供一个 JSF 的例子,用来展示 JSF 的事件驱动特性。要理解本文,您需要对 servlets, jsp, JavaBeans, 与标签库有一定的理解。

首先,一个 JSF 应用就是一个 servlet/JSP 应用。它有一个配置描述符,有 JSP 页面、客户定制标签、静态资源等等。不同的是,JSF 应用是事件驱动的。你通过写一个事件侦听类来决定应用程序的行为。以下建立一个 JSF 应用所需要的几个步骤:

1、建立 JSP 页面,用 JSF 组件包装 Html 元素。

2、写一个 JavaBean 用来保持用户输入与组件数据的状态。

3、写一个事件侦听器来决定当某事件发生时应该有什么反映,比如用户点击了一个按钮或者提交了表单。JSF 支持两个事件:ActionEvent 与 valueChangeEvent 。ActionEvent 是针对用户提交表单与点击按钮的,而 valueChangeEvent 是当一个 JSF 组件改变了时触发。

现在,让我们来看一下 JSF 动作的细节。

JSF 怎样工作

JSP 页面是 JSF 应用的用户接口。每个页面包括一些 JSF 组件用来描述 WEB 控件,如表单、输入框、按钮等等。组件可以嵌入另一个组件中,正如输入框可以在表单中。每个 JSP 页面就这样表示为组件树。JaveBeans 从用户的请求中获取数据并存储。

这是有意思的部分:每当用户做任何事情,如点击按钮或者提交表单,都有事件产生。然后事件消息通过 HTTP 传到服务器。在服务器端,是一个配置了叫做 Faces servlet 的非凡 servlet 的 WEB 容器。Faces servlet(javax.faces.webapp.FacesServlet)是所有 JSF 应用的引擎。每个 JSF 应用在 WEB 容器中都有独立的 Faces servlet 。另一个重要的对象是 javax.faces.context.FacesContext , 它包括了所有关于当前用户请求的必要信息。

Faces servlet 的后台处理是相当复杂的。然而你没有必要了解这些细节,只需要记住:Faces servlet 为 JSP 页面创建了组件树,对组件树的控制又对应着事件。Faces servlet 知道怎么去创建组件树,因为它已经访问了当前应用中所有的 JSP 页面。Faces servlet 还会创建一个 Event 对象,并把它传递给所有注册过的侦听器。你可以通过与当前请求相对应的 FacesContext 得到这个页面的组件树。

客户端浏览器上 WEB 控件产生的事件,被包含在一个 HTTP 请求中,放在一起还有如浏览器类型、请求地址等其它信息。因此,所有需要 Faces servlet 处理的请求必须指向这个 servlet 。那你怎样通过调用 Faces servelt 来处理每个 HTTP 请求呢?很轻易,只需要在配置描述符里用一个 servlet-mapping 元素把一个非凡的 URL 式样映射到 Faces servlet。通常,你会用到 /faces/* 样式,如下所示:

Faces Servlet

javax.faces.webapp.FacesServlet

1

Faces Servlet

/faces/*

请求地址必须包含有在 元素中描述的样式。这个要求不轻易达到。另外也需要注重的是 元素,它包含 Faces servlet ,有一个 元素,用来确是否应用程序第一次启动时 servlet 是否加载。

为了捕捉组件产生的事件,你需要为这个组件写一个侦听器,并把它注册给这个组件。通过在表示组件的客户端标签中嵌入 元素能做到这一点。例如,为了让一个名叫 jsfApp.MyActionListener 的事件侦听器,来捕捉一个名叫 submitButton 的命令按钮产生的事件,在你的 JSP 页面中写如下的代码即可:

一个 action listener 必须实现 javax.faces.event.ActionListener 接口,而一个 value-changed listener 必须实现 java.faces.event.valueChangedLister 接口。下面让我们来创建一个简单的 JSF 应用,以展现 JSF 是怎么样事件驱动的。

一个简单的 JSF 应用

我们将创建一个简单的应用,它可以实现对二个数字相加。为了运行这个应用,你需要预备 TOMCAT5 与 JSF v1.0 EA4(包含在 Java Web Services Developer Pack (JWSDP) 1.2中)。这个应用程序包括:

adder.jsp JSP 页面。

NumberBean 存放用户数据的 JavaBean

MyActionListener 事件侦听器

web.xml 配置描述文件

为了使这个应用能正常工作,还需要几个 jar 文件,包括 JSF 标准实现与其它类库。假如你安装了 JWSDP 1.2,你就可以在 jsflib 目录下找到所需要的这些文件。把这些 .jar 文件拷贝到 WEB-INF/lib 目录下。下面是整个的 .jar 与 .tld 文件列表:

jsf-api.jar 包含有 Faces servlet 与其它相关 javax.faces 包下面的类

jfs-ri.jar 是 JSF 的参考实现

jstl_el.jar

standard.jar

此外,一个 JSF 的应用还需要如下的类库,它们是 Apache Jakarta 项目的一部分:

commons-beanutils.jar

commons-digester.jar

commons-logging.jar is

以下的几小段讨论这个 JSF 示例的每个部分。最后的一小段,“编译与运行”,解释 JSF 应用怎么样运行。

创建目录结构

首先为你的 JSF 应用创建一个目录结构。在 TOMCAT 中,它在 webapps 目录下。“图1”描述了叫做 myJSFApp 的应用程序的目录结构。

写配置描述符

与其它的 servlet/JSP 应用一样,这个应用程序也需要一个配置描述文件。如“清单1”表示。

Listing 1. The deployment descriptor (the web.xml file)

/p

"-//Sun Microsystems, Inc.//DTD Web application 2.3//EN"

"";;

Faces Servlet

javax.faces.webapp.FacesServlet

1

Faces Servlet

/faces/*

在这个配置描述文件中有二个部分。 元素注册 Faces servlet , 元素声明任何包含有 /faces/ 式样的请求地址,必须传递给 Faces servlet 。

创建 JSP 页面

一个叫做 adder.jsp 的 JSP 页面提供用户接口,如“清单2”所示:

Listing 2. The adder.jsp page

Add 2 numbers

First Number:

Second Number:

Result:

我们首先定义了俩个标签,它用到 JSF 的两个标签库:html 与 core 。这俩个标签库的定义可以在 jsf-ri.jar 文件中找到,所以你不用为它担心。它们的前缀分别是 h / f 。

这个动作元素定义 NumberBean JavaBean 为 session scope 。

JavaServer Faces是什么?请详细讲解下?

在 JavaServer Faces Technology 中提供了很多有用的特性。需要着重介绍的一些主要功能包括:

Managed Bean 工具

验证工具

丰富且可扩展的组件库

插入式呈现工具包

对具体用户事件响应的导航

跨请求保留应用程序状态

转换模型

本文将简要介绍 JavaServer Faces Technology 的这些功能并且给出一些例子。

关于这些功能的详细信息和 JavaServer Faces Technology 提供的其他功能,请参考 J2EE 指南的 JavaServer Faces Technology 的相关章节(第 17-21 章)。

JavaServer Faces 应用程序实质上是一个运行在一个与 Java(TM) 2 Platform, Enterprise Edition (J2EE(TM) platform) 兼容的容器中的 Servlet 或者 Java Server Pages(JSP) 应用程序。这说明它需要 Java Servlet 2.3 和 JSP 1.2 或者更新的版本。 开始创建和配置一个 JavaServer Faces 应用程序的最好的方法是免费下载Java 2 Software Development Kit, Standard Edition (J2SE SDK) 1.4 或者更高版本。需要指出的是,JavaServer Faces Technology 不要求在应用程序中使用 JSP 页面,您可以自由选择直接使用 Servlets 或者其他模板技术。如果确实对 JSP 容器使用了 JavaServer Faces Technology,您将通过 JavaServer Faces 的客户组件标签从内建的 JavaServer Faces 内核和 HTML 组件库中受益。JavaServer Faces 组件代表像文本字段、表单、按钮、表格、复选框等的 Web 控件。

使用 JavaServer Faces Technology 创建一个 JSP 页面时,在服务器的内存中会建立一个组件树,每一个组件标签对应树

Swing 或 JavaServer Faces:究竟选择哪一个?

Swing 能否经受住富互联网应用程序宣传热潮的考验?2006 年 3 月发布J2EE Web 技术已经从一个静态的内容提供环境迅速发展为一个在内联网和互联网上运行的动态业务应用程序的可靠平台。Web 的前景体现在,无论您的业务需求如何,浏览器都将是您未来唯一需要的客户端。在这种趋势的推动下,最近掀起了新一轮围绕高度交互的 Web 界面(基于一组称作 AJAX 的技术)的宣传热潮。AJAX 与新 J2EE 标准 JavaServer Faces (JSF) 的结合使用在处理 Web 应用程序方面有望提供更好的最终用户体验和认可。AJAX(异步 Javascript+XML 的缩写)描述了一组现有技术(如 JavaScript、XML 和文档对象模型 (DOM))的使用模式。不可否认的是,AJAX 和 JavaServer Faces 来势迅猛,并将很快挡住 Swing 的去路,而 Swing 自 1998 年以来一直是用 Java 构建丰富用户界面的标准方法。浏览器将在未来唱主角?Swing 能否经受住富互联网应用程序宣传热潮的考验?本文针对 Swing 和 JavaServer Faces 进行了介绍、定位和比较,以帮助开发人员决定对某种作业使用哪种技术。此外,本文还介绍了 Oracle 应用程序开发框架 (ADF) 如何有助于简化使用这两种技术进行的应用程序开发。 从Java 到 Swing 再到 JavaServer Faces应用程序开发史中曾出现过许多编程语言。早在 1991 年,James Gosling 发明了“Oak”,即 Java 的前身。由于 Oak 无法出售,因此 Sun 于 1995 年推出了 Web 编程语言 - Java,此后不久 Java Applet 即成为 Web 应用程序开发的这个“石器时代”的主导技术。1998 年发布了用于开发轻型 Java Web GUI 和客户端桌面应用程序的 Java Swing 平台。一年以后,Sun 推出了 Java 2 企业版 (J2EE) 平台,该平台在 6 年后引入了 JavaServer Faces。Swing 本身是一个基于抽象窗口工具包 (AWT) 和 Java 基础类 (JFC) 构建的轻型组件集。从推出到现在的七年多时间里,Swing 程序包已经成为 J2SE 中一个非常成熟的 Java 库,并广泛用在企业级业务应用程序的构建中。Swing 以灵活而强大的开发环境著称,它为应用程序开发人员提供了大量的控制权。毫不夸张地说,只要是可以用 Java 构思的应用程序,就可以用 Swing 构建它。但 Swing 的灵活增加了复杂度和学习难度。类似 Oracle JDeveloper、NetBeans 和 IntelliJ 这样的 Java IDE 为 Swing 提供了可视的 4GL 编辑环境,有助于开发人员快速入门并执行更深层次的操作,而不必深入学习 Swing。2004 年 3 月推出的 JavaServer Faces(也称作 JSF,或简称为“Faces”)是一个用于构建 Web 应用程序的基于组件的框架,该框架并入了 JavaBean 事件模型,用于将信息发送到其他组件。作为 J2EE Web 技术的发展,JavaServer Faces 将基于模板的编程式 Web 开发与 4GL 类型的开发选项结合在一起。 J2SE Swing 体系结构尽管Swing 是 Java 标准版 (Java SE) 的正式部分,但它并不是核心 Java 语言的成员,而是被视为一个标准扩展。以 javax.swing 而非 java.swing 开头的 Swing 程序包名称也反映了这一点。使用 Swing 开发的应用程序在 Java 运行时环境 (JRE) 中执行,该环境可以安装在本地桌面客户端中,也可以集成到 Java Web Start 或 Web 浏览器中。所有Swing UI 组件均为 JavaBean,并采用对象模型控制器体系结构,将数据表示与对数据的操作分离。该模型不包含任何 UI 特定的代码,反之亦然。模型与 UI 之间的所有信息交换均通过 JavaBean 事件和监听器进行。这种职责划分使经验丰富的 Swing 开发人员能够自定义组件 UI,而不必更改组件行为。Swing 中的组件控制器和视图称作 UI 代理。控制器将用户交互指派给模型,并由模型保存组件的状态。 图1:Swing 体系结构 Swing 中的 UI 组件可在运行时通过属性方法或在设计时通过可视编辑器以编程方式进行控制。并非 Swing 中的所有组件均绑定到数据,某些组件(如按钮)只需要处理 GUI 状态。UI 组件中的事件通过注册的 JavaBean 监听器(如 MouseListener、FocusListener 或 ChangeListener)进行检测。 ADF 与 SwingSwing 始终存在的难题之一是如何将组件绑定到动态数据。过去,有许多不同框架已经通过非标准方法多次解决了这一难题。而作为 JSR-227(用于解决此数据绑定难题的建议标准)早期采用者的 ADF 以及 ADF Swing 采用标准方法将 Swing 应用程序绑定到所有业务服务,如 Enterprise JavaBeans、TopLink、Web 服务、ADF 业务组件以及 URL。ADF Swing 是一个将 Swing 域模型绑定到 Oracle ADF 绑定的小型 Java 层。ADF Swing 开发人员采用声明方式将组件模型设置为 ADF 绑定中的有名引用。ADF 中的数据控件将一致的客户端开发 API 公开给不同的业务服务,以便 Swing 开发人员使用。数据控件采用标准方法来创建、删除和插入数据,并采用标准控件来导航数据集。ADF 绑定将一个可以从数据控件访问的较小的数据子集公开给 Swing 应用程序面板或框架。Swing 开发人员无需了解应用程序构建所基于的业务服务,这是因为他们不再处理特定的模型 API。同样,他们并不负责资源查找或类似任务。所有这些任务均由 JSR-227 实现处理,该实现提供了一个有效的控制反转机制。由于ADF Swing 应用程序开发在很大程度上是一个使用 ADF 执行的声明任务,因此它缩短了新手和 Java 专家的应用程序开发周期。例如,UI 第一绑定使项目团队可以轻松地进行快速原型设计。可以采用概念验证的方式创建 UI 的非绑定版本,然后采用回溯方式将其绑定到服务。 图2:ADF Swing 体系结构 JavaServer FacesJavaServer Faces 是 Web 应用程序开发中的一个里程碑,它将成为 J2EE 5.0(SUN 最近将其重新命名为 JEE 5.0)中核心 Java 企业版平台的一部分。JavaServer Faces 可以作为独立的 Servlet 在 J2EE1.4 应用服务器中使用。Web 并非为需要事务和状态处理的业务应用程序而设计。多年来,开发人员花费了大量时间使用各种技术(如隐藏的 HTML 域、cookie、URL 或会话参数)来跟踪 Web 应用程序的状态,而这样做仅仅为了克服 HTTP 协议无状态这个问题。JavaServer Faces 有助于开发人员重新关注应用程序的业务要求,而不再关注基础的交付技术。JavaServer Faces 是一个 UI 框架,它对应用程序开发人员隐藏了 HTTP 请求 – 响应循环的细节。与Swing 中的 JavaBean 体系结构相似,JavaServer Faces 使用通过属性公开状态和行为的 UI 组件来构建 Web 界面。尽管 JavaServer Faces 页面通常汇集在 JSP 文件中,但这并不是必需的。JSF 这项技术并非只可用于基于浏览器的应用程序,同时也可用于构建移动应用程序。JavaServer Faces 中的 UI 组件是显示不可知的。这意味着应用程序开发人员并不构建针对特定设备的应用程序,而是构建可以在许多设备上运行的应用程序。JSF 中的 UI 组件呈现器类(打包的呈现器集的一部分)决定 UI 的可视化表示。如果初始应用程序请求来自 Web 浏览器,则该表示采用 HTML 格式,否则应用程序将按照请求客户端设备所支持的方式呈现(假设该设备类型存在一组呈现器类)。类似文本域这样的 UI 组件通过 ExpressionLanguage (EL) 值绑定绑定到 (JSF) 管理的 bean 模型上。在值绑定中,EL 用于引用辅助 bean 中的 setter 和 getter 方法对。例如,EL 表达式 #{users.firstname} 将 JSF 组件绑定到用户 bean 中的 setFirstname 和 getFirstname 方法上。EL 绑定另一个可能的形式是方法绑定。方法绑定引用受管理 bean 中的方法,并在 JSF 中(就像在按钮中一样)用于将操作属性绑定到视图层逻辑,以便在复杂导航情形下或者在需要导航前和导航后处理的情况下执行。 图3:JavaServer Faces 体系结构 受管理 bean 的另一个角色是将 UI 组件绑定到域数据,例如访问 JDBC 查询的结果集或查找 Enterprise JavaBean (EJB) 会话。此外,页面上的 UI 组件可能在辅助 bean 中包含一个用于以编程方式访问的表示。Oracle 应用程序开发框架 (ADF) 和 JavaServer FacesOracle JDeveloper 10.1.3 支持通过可视编辑器进行 JavaServer Faces 开发。此外,Oracle ADF 可用于通过声明方式将 JavaServer Faces 和 ADF Faces 组件绑定到业务服务数据。正如在 Swing 的上下文中介绍 Oracle ADF 时所指出的,使用 Oracle ADF 绑定为 JavaServer Faces Web 应用程序开发人员提供了一个统一的开发 API,用于访问 Web 服务、Enterprise Java Bean、TopLink、POJO、ADF 业务组件以及其他类型的业务服务。ADF Faces 是一组基于 JavaServer Faces API 构建并可以部署到任何 JSF 实现(如由 Sun 或 Apache MyFaces 提供的参考实现)的 100 多个 JSF UI 组件的总称。除了适用于浏览器客户端的 HTML 呈现器工具包以外,ADF Faces 还为在 telnet 客户端、移动设备和 PDA 上显示的 Web 应用程序提供了呈现器,并支持作为显示不可知 Web 应用程序开发环境的 JavaServer Faces 的强大功能。为将ADF 与 JavaServer Faces 应用程序集成,表达式语言值绑定访问 ADF 绑定对象,而非辅助 bean 中的数据。ADF 绑定对象(默认情况下名为“bindings”)由 ADF servlet 在应用程序初始化过程中创建,并使开发人员能够访问通过 ADF 数据控件和绑定层公开的所有集合和方法。要以编程方式引用和使用辅助 bean 中的 ADF 绑定对象,可以通过 faces 配置中的 ExpressionLanguage 表达式 #{bindings} 访问绑定对象并将其作为受管理属性的值注入到辅助 bean 中。 图4:使用 ADF 的 JavaServer Faces 体系结构 履行富互联网应用程序的诺言:AJAX 和 ADF Faces对于并非熟悉 Javascript、XML 或文档对象模型 (DOM) 等 Web 技术的开发人员而言,AJAX 易于理解但却难于实现。对于业务应用程序而言,仅当在 JavaServer Faces 这样的 Web 应用程序框架中以“现成方式”在组件中使用时,AJAX 才有意义。ADF Faces 提供了部分页面呈现和对话框支持,使开发人员能够构建更好的 Web 客户端。作为一个早期实现的 AJAX,部分页面呈现缩短了客户端的响应时间,因为它减小了只需刷新页面的某些部分的网页的下载大小。ADF Faces 的未来发展方向是提供一组利用 AJAX 的富互联网组件,以便 Web 应用程序开发人员能够构建响应性和交互性较高的 Web 客户端,而不必编写 JavaScript 或 DHTML 代码。在 JavaOne 2005 召开期间首次展示了 ADF Faces 富互联网应用程序客户端的预览版本。在什么场合使用什么技术? 当决定对新应用程序开发使用哪种技术时,应用程序的要求(而非各种技术的功能)是一个不错的指标。以下是对两种技术的简要分类比较 开发:主要的 Java IDE 支持对 Swing 和 JavaServer Faces 进行可视开发。开发 JavaServer Faces 应用程序时,开发人员可以获得很多好处而不必编写 Java 代码。组件:Swing 和 JavaServer Faces 均基于组件,并将 JavaBeans 用于其 UI 组件。还可以创建在应用程序中使用的自定义组件。页面和布局:Swing 中的布局通过嵌套 Swing 面板定义。Swing 组件的位置及其调整大小的行为通过 LayoutManagers 确定。同样,在 JavaServer Faces 中,布局通过容器(如 ADF Faces 中的 PanelPage 和 PanelBox)定义。每个容器可以有很多个子组件,而其中的每个子组件本身也是容器。尽管使用 HTML 表格安排 JSF 应用程序的布局可能比较吸引人,但在处理 JSF 应用程序时建议您不要混合使用多技术。UI 响应性:AJAX 更适合于 Web 应用程序,它可以根据提供的输入或模型层中引发的事件向用户立即提供反馈。Swing 用户界面具有高响应性,并可以刷新屏幕上的特定区域而不用刷新整个屏幕。例如,股票应用程序可以向 Swing 应用程序发送有关已更改值的信息,无需重新查询即可将该信息显示给用户。更新、插入和删除:Web 模型基于 HTTP 协议,该协议并非为事务应用程序和动态业务应用程序而设计。JavaServer Faces 自动处理 Web 开发人员以往所面临的大量问题,但在处理多行更新方面,有时仍需要开发人员亲自操作。而在 Swing 中,多行操作对于应用程序开发人员(如使用 ADF Swing 的开发人员)而言比较简单。外观: Swing 支持动态外观类,这些类在应用程序启动时向其应用特定颜色方案。更改应用程序外观不需要更改应用程序代码。JavaServer Faces 使用样式表显示不同的用户外观。此外,Oracle ADF Faces 还提供了一个称作“换肤”的特性,其作用与 Swing 中的外观类相似。国际化:这两种技术均支持使用资源包进行字符串翻译。JavaServer Faces 包含客户端上的浏览器设置中的首选用户语言,而 Swing 应用程序根据 Java 运行时环境中的区域设置确定语言。JavaServer Faces 和 Swing 均可以编程方式设置语言,以便应用程序用户可以从应用程序中选择一种翻译。事件模型:JavaServer Faces 和 Swing 组件均使用 JavaBean 事件模型发布有关模型或组件更改的信息。相关各方可以使用 JavaBean 监听器注册事件,如值更改事件、属性更改事件或阶段事件。键盘快捷方式:尽管这两种技术均支持键盘快捷方式,但由于 Swing 并不依赖于浏览器,因此在这方面优势比较明显。所有键盘功能均由 Swing 处理并可以由应用程序开发人员控制。桌面集成:安装到本地的 Swing 应用程序拥有客户端桌面的完全访问权限。JavaServer Faces 通过上载和下载文件只提供有限的桌面集成。导航:Swing 只具有编程式导航功能,而不存在为 Swing 标准(定义应根据操作输出显示哪个面板)定义的外部控制器。JavaServer Faces 使用一个控制器组件,可以根据计算输出使用指定的导航示例对其进行配置。导航可以定义为操作组件的静态字符串,而对于更复杂的导航,则可以用 Java 表示。应用程序控制:与导航相关,相对于在 JavaServer Faces 中而言,应用程序开发人员可以更好地控制客户端中的 Swing 应用程序。用户在 Java 运行时环境中运行 Swing 应用程序,而这并不会因为(例如)工具栏不是应用程序本身的一部分而引起冲突。在浏览器中运行的 JavaServer Faces 应用程序总要求开发人员解决已知的浏览器限制。如今,没有使应用程序开发人员能够关闭不需要的浏览器行为或功能(如浏览器后退按钮或浏览器保留的键盘快捷方式)的通用浏览器标准和一组通用 API。性能:对于执行数据密集型操作的应用程序而言,JavaServer Faces 的性能似乎要高于 Swing,这是因为它只显示对客户端的更改。使用 AJAX,所需的下载大小将变得更小,从而性能将得到进一步的提高。尽管 Swing 可以使用远程服务器上部署的业务逻辑,但这需要使用远程方法调用 (RMI),该调用的性能要低于 JavaServer Faces 模型。但应始终针对单个应用程序来分析网络性能,并应在可能的用户界面中考虑应用程序的要求。安全性:JavaServer Faces 集成了声明式 J2EE 安全性,从而易于保护 Web 应用程序以及与一次性登录集成。Swing 更难于保护,且将基于 J2SE 权限的安全性与需要更多专业技能的 Java 验证和授权服务 (JAAS) 结合使用。部署:JavaServer Faces 部署到 J2EE 容器并从 Web 中进行访问。该部署的体系结构既可以是两层的(其中的业务逻辑层与视图层位于同一服务器上)也可以是三层的。Swing 通常部署到本地客户端上,或通过 JavaWeb Start(J2SE 中一个基于服务器的软件管理选件)进行部署。对于 JavaServer Faces 而言,使用 Oracle Application Server Control 或相似的管理控制台可以使部署变得更简单、更易于管理。综上所述,如果应用程序要求对用户输入或更改用户显示的事件立即做出响应,则 应使用 Swing。这对在一个屏幕上显示多个主/从相关性的复杂用户界面也是如此。此外,与 Web 相比,Swing 还可以为需要执行即时项目验证的应用程序(可能基于复杂的逻辑)提供更好的支持。使用 Swing 的另一个重要原因是需要不仅能文件上载和下载的桌面集成。此类集成的例子有本地打印机访问、对电话或扫描仪等外部设备的访问。此外,与 Web 技术(其中封闭浏览器使用某些键盘组合)相比,Swing 可以为需要定义其自身的键盘映射的应用程序提供更好的服务。在构建 Swing 应用程序时,其他浏览器功能(如可能妨碍业务控制的应用程序导航的浏览器后退按钮)不会成为问题。某些业务要求应用程序脱机运行(即与网络断开连接),您可以根据此要求来构建 Swing 应用程序。最后,Swing 应用程序只使用一种语言开发,而 JavaServer Faces 混合使用 Java、XML 和 ExpressionLanguage 等技术。如果需要可以从任何位置(不要求安装客户端)访问应用程序,则 应使用 JavaServer Faces。这包括可能为 PDA、移动电话和 telnet 客户端等显示设备提供的支持。与 Swing 不同,JavaServer Faces 可以通过防火墙(使用 HTTP 或 HTTPS 来保护客户端-服务器通信)进行轻松的运行。由于逻辑在服务器上执行,因此 JavaServer Faces 更易于部署并需要更少的客户端资源。如今,互联网应用程序已得到普遍使用,因此您可以假设应用程序用户熟悉 Web 应用程序的外观和使用。这降低了用户在使用新应用程序时的学习难度。安全性是使用基于 Web 的 JavaServer Faces 应用程序的另一个重要原因。尽管可以使用 JAAS 构建安全的 Swing 应用程序,但构建与服务器上容器管理的安全性和一次性登录集成的基于 Web 的应用程序则更为简单。此外,与在 Swing 中相比,在 JSF 中更容易实现需要将其中的身份发送到其他组件或应用程序的安全性集成。但您应该知道的是,将 JSF 与 AJAX 结合使用是基于 Javascript(需要浏览器支持)的。将来,Swing 技术如今具有的优点将逐渐消失。例如在美国,宾西法尼亚和旧金山两座城市已经启动了一些在整个城市提供无线访问的项目。一旦世界上的其他国家/地区采用了该模型,那么在断开连接模式下工作(Swing 当前的优点)将不再必要。有关 Swing 逐渐失去优势的另一个例子是 AJAX 有望为 Web 应用程序带来的即时客户端显示响应这一优点。 有选择的生产效率:是否只须学习一种技术? 成功开发 J2EE 应用程序需要 J2EE 框架和 Java IDE,它们尽量对应用程序开发人员隐藏复杂性,同时还实施了最佳的编码实践。 一项互联网工作招聘快速调查显示,Web 应用程序开发人员的就业市场远远大于 Swing 应用程序开发人员。因此,在理想情况下您需要学习的一门技术是 Web 应用程序开发,其中包括 JavaServer Faces、AJAX 和 JavaServer Pages。在需要开发 Swing 应用程序时,如果将 Oracle 应用程序开发框架和 Oracle JDeveloper 与 Swing 结合使用,则 Web 应用程序开发技术就足够了。Oracle JDeveloper 是一个支持 J2EE 桌面和 Web 应用程序的集成 Java IDE。使用 Oracle 应用程序开发框架,应用程序开发人员无须再学习如何使用不同的 API 来访问各种持久层技术,使用一个一致的 API 就可以了。使用Oracle ADF,Web 应用程序开发人员可以在设计时和运行时使用与 Swing 应用程序开发人员构建 Java 桌面应用程序所使用的同一组元数据文件。由于提供了相似的开发环境,因此 Swing 应用程序开发人员将发现开发 Web 应用程序其实比较简单,反之亦然。因此,如果您必须只学习一种技术,则建议您最好学习如何使用 Oracle 应用程序开发框架开发 Web 应用程序。总结JavaServer Faces 与 AJAX 的发展过程就像人类学习走路一样,是一个渐进的过程。Web 应用程序最初以静态界面形式出现,现在已经逐步演变为一个动态应用程序平台。AJAX 只不过是需要在其最具有意义的环境 - JSF 中实现的下一个逻辑步骤。拥有富互联网客户端使开发人员可以选择使用适当的技术解决问题。富互联网应用程序 (AJAX)基于组件的 Web 客户端 (JSF)基于动态标记的 Web 客户端 (JSP)桌面集成客户端 (Swing)AJAX 阐述了一种使 J2EE 应用程序开发人员能够将复杂的业务应用程序发布到 Web 的可能。作为 Swing 开发人员,您不必在意围绕 AJAX 展开的宣传热潮,但应在意它的动机。宣传是为了推广新机会,而这正体现了 JavaServer Faces 和 AJAX 的本质:为应用程序开发人员构建富 Web 应用程序提供新机会。Swing 是为客户端桌面开发 Java 应用程序的标准方法,并且它要解决的开发问题与 JavaServer Faces 和 AJAX 不同。它通过 Community Process 以及 Sun(它还领导了 Java 桌面网络组件 (JDNC) 项目)的努力得到不断发展和改进。尽管Swing 与 JavaServer Faces/AJAX 在功能上存在重叠,但两者并不直接竞争。为某项工作选择的技术必须解决您要解决的问题,而反之则不然。使用 Oracle 应用程序开发框架,开发人员可以灵活地选择相应的技术,以便使用一种基础技术集开发 Web 应用程序和桌面应用程序。 Frank Nimphius 和Duncan Mills 是Oracle 开发人员工具部门的产品经理,两人均为 Oracle ACE。

javaservice faces 2.2 requires dynamic web module 2.5 怎么解决

1、打开项目根目录下的.project

nameorg.eclipse.wst.common.project.facet.core.builder namenatureorg.eclipse.jem.workbench.javaemfnature naturenatureorg.eclipse.wst.common.modulecore.modulecorenature naturenatureorg.eclipse.wst.common.project.facet.core.nature nature2.重新打开eclipse,在项目下点击左键选择项目属性 选择Project facets 选中Dynamic web project ,java,javascript,如果选中Dynamic web project 选择不能确定,或tomcat x.x does not support version 2.5 of J2EE specification.....异常,排除Dynamic web Module于某些项不能同时选择的异常.解决方式是:

打开项目根目录下的.settings在有个名为org.eclipse.wst.common.project.facet.core.xml的文件,里面配置有各种版本信息。此时,按照通常按照如下修改.在fixed facet="wst.jsdt.web" fixed facet="jst.web" fixed facet="java" installed facet="java" version="1.6" fixed facet="wst.jsdt.web" installed facet="java" version="1.6" installed facet="jst.web" version="2.5"

natureorg.eclipse.jem.workbench.javaemfnature naturenatureorg.eclipse.wst.common.modulecore.modulecorenature naturenatureorg.eclipse.wst.common.project.facet.core.nature nature

关于javafaces和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-04-10 07:04:06
收藏
分享
海报
35
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了