`
jiming
  • 浏览: 274992 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转贴]八大优势能否助JSF统一Web开发

    博客分类:
  • java
阅读更多

作者:Simon     来源:IT168


JSF掀起你的盖头来

JSF为什么会受到如此大的青睐,IBM,orcale,包括国内领先的中间件厂商金蝶也投以关注目光。那么它又具有哪些与众不同的优势吸引众商家投怀送抱呢?下面我们就来揭开JSF的神秘面纱。

JSF英文全称 JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化开发,也是Sun精心打造的一项技术。

JSF优势之一:UI组件(UI-component)

UI组件(UI-component)一直是桌面程序的专利,web程序中,虽然HTML定义了基本的UI标签,但要使这些UI标签像UI 组件那样工作,还需要很多代码片断来处理数据及其表现形式,而且有效地组织这些代码片断使其协调一致也是一件繁琐的工作。JSF的UI组件是真正意义上的 UI组件,能极大地简化程序员的工作,例如,在页面上放置一个文本输入框,这个输入框立即具备了数据填充、界面更新、事件侦听、动作触发、有效性检查和类 型转换的功能。更为重要的是,程序员只需根据业务逻辑编写核心业务代码,JSF会保证代码在合适的时候被执行,完全不用考虑代码与代码之间该如何来配合。

JSF优势之二:事件驱动模式

事件是面向对象方法的重要组成部分,对象之间通过事件进行沟通和交流,使得一个或多个对象能够对另一个对象的行为作出响应,共同合作去完成 一项业务逻辑。通常,编写Web程序时,程序员要为对象之间的沟通设计机制,编写代码。虽然沟通的内容属于业务逻辑,但沟通的机制显然与业务没有太大关 系,程序员因此为业务逻辑之外的功能浪费了时间。

JSF改变了这种状况。JSF的事件和侦听模式与大家熟悉的Javabean的事件模式类似,有Java基础的程序员并不需要学习任何 新的东西。JSF的UI组件可以产生事件,例如,当页面上一个文本输入框的内容被修改时,会发出一个“值改变事件”。另一个对象如果对“值改变事件”感兴 趣,只需注册为该对象的侦听者,并编写处理例程,即可命令JSF在事件发生时自动调用处理例程。JSF做了所有该做的事,留给程序员的只有业务逻辑代码的 编写。

JSF优势之三:用户界面到业务逻辑的直接映射

举个例子,表单提交是Web编程最常见的任务,也是最复杂的任务之一。当用户在网页上点击“确定”按钮时,浏览器将生成一个HTTP请求, 发往服务器端的某个Servlet,执行该Servlet的service方法。在service方法中,HTTP请求需要经历解码、类型转换、有效性验 证、状态保存、数据更新等环节,处理这些环节的所有细节,对程序员来说是沉重的负担。

在JSF下,这些工作的很大一部分都由框架承担了,在程序员看来,这个过程是透明的,用户界面端的HTTP请求可以直接映射到后端的一个事件处理例程,JSF起到了承前启后的作用。

JSF优势之四:程序员和网页设计人员的分工

在JSP中,程序员和网页设计人员的工作有时候是互相交织、无法区分的。这是因为JSP页面中掺入了网页设计人员所不熟悉的一些JSP标 签,甚至是晦涩的Java代码。要求网页设计人员理解这些标签和代码是不现实的,不符合分工合作的原则。在JSF中,框架为网页设计人员提供了一套标准的 UI组件,在工具的支持下,可以通过拖放简单地添加到网页上,然后设置某些显示属性来满足视觉要求。

网页设计人员不需要知道UI组件背后的复杂代码,那是程序员的事,而程序员也不需要再处理任何与视觉相关的细节,程序员所做的只是给 UI组件绑定类的属性或方法。虽然程序员和网页设计人员需要修改同一份文件,但他们各司其职,各得其所,互不干扰。程序员和网页设计人员工作的明确划分, 是JSF在易用性方面迈出的一大步。

JSF优势之五:请求处理生命周期的多阶段划分

虽然都是建立在Servlet基础之上,但JSF的生命周期要比JSP复杂得多。JSP的生命周期非常简单,页面被执行时,HTML标记立即被生成 了,生命周期随即结束。而一个完整的JSF请求-处理生命周期被精心规划为6个阶段,典型的JSF请求需要经历所有阶段,某些特殊的请求也可以跳过一些阶 段。阶段的细分,显然引入了更多的处理,但JSF框架会管理这一切,所以,程序员在获得更多控制能力的同时,工作量并没有增加。

JSF优势之六:伴随工具而生存

JSF带来了Web编程的巨大变革,变革的强烈程度超出了很多工具厂商的预料,以至于现在可供JSF使用的工具非常缺乏。缺乏工具支持的 JSF只会令人敬而远之,因此,JSF在设计之初就为工具厂商预留了用武之地。在为数不多的JSF工具中,sun的Java Studio Creator是一个优秀的开发环境;Borland的Jbuilder在JSF1.1时曾经是非常好用的开发工具。

可惜现在对JSF1.2的支持没有跟上;Eclipse下JSF的插件很多,但真正支持所见即所得的JSF插件都是收费的,例如Bea 的Workshop for JSF、Exadel的JSF Studio等等;此外,Oracle和IBM也有JSF的开发工具。随着工具的不断涌现,用JSF开发Web程序将会越来越方便和快速。

JSF优势之七:全面的用户自定义支持

前面提到,JSF将极大地简化Web程序的开发,作为一个相对复杂的框架,JSF是如何做到这点的呢?原来JSF为程序员提供了很多默认的 组件和类,通常情况下,JSF的这些默认组件和类足以满足Web开发的需要了。但是,考虑到在某些应用场合,框架的默认行为也许不符合业务的要求,JSF 特别允许程序员编写自己的组件和类,来满足客户的特殊需求。例如,程序员可以编写自己的UI组件,甚至可以创建自己的EL解释器,来支持非标准的EL表达 语言。

JSF优势之八:Web开发的官方标准之一

JSF的1.0版本发布于2004年2月份,当时是作为一项独立的Web技术推出的。经过1.1版到现在最新的1.2版,短短的两年多时间,JSF 终于在2006年年中成为Java EE 5的组成部分,上升为Web开发的官方标准之一。Java EE 5最重要的使命就是简化Java的开发,而JSF无疑为这一使命立下了汗马功劳。在Web框架层出不穷甚至有些泛滥成灾的今天,Sun以JSF来树立标 准,对Java的发展是有益的。Sun在Java领域的领袖地位不容动摇,对于Java程序员来说,始终追随业界领袖的步伐,也许是避免技术落伍的最好方 法。

JSF能否统一Web开发模式

在J2EE下一代规范Java EE5.0中,JSF技术被放到了一个非常重要的地位,J2EE社区试图通过JSF来统一Web应用的开模式与方法, 但是JSF能否担起Sun所赋予的重任?实现Web开发的统一?

很多开发人士都对JSF不抱乐观的态度,用过JSF的人都称JSF是Web开发世界的创举, JSF可谓墙里开花,墙外不红,是什么原因的造成如此大的反差呢?

1.获取方式

书是我们获取知识第一来源,一种技术的火爆程度,我们不用在网上去做任何调查,只要去一下图书城结果就一目了然,关于JSF的书籍简直是凤 毛麟角,难觅终影,这样在人们在获取JSF相关资料,JSF会大打折扣,比较经典《JSF in Action》国内还没哪家出版社有翻译动向,证明图书厂商还没有对JSF投入太多关注度。

2.中文讨论区成熟度不够

除了图书方面,讨论区的热度也很重要,打开JSF官方讨论区,对JSF大唱赞歌人大有人在,为什么国内这种讨论却少之又少呢?一些国内比较知名的讨论区中没有看到JSF的相关技术讨论,这样从影响度上从知识的渴求度上,都限制了JSF前进脚步。

3.Sun商业策略

Sun的商业运作模式一直存在问题,我们在之前曾经预言过如果JSF不叫JSF,而叫JSP3.0那么现在结果会如何呢?Sun可以不费一 兵一卒从而实现JSP到JSF的合理过渡,同时也会有大批的JSP狂热者迅速的转向JSF,也可能有些人会认为两者是不同的两种技术,但是谁又能说Asp 和Asp.net是两种相同的技术吗?同样的策略微软用的很成功,难道Sun没有想到吗?

4.开发工具的支持程度

这次采访袁总的时候,也提到了JSF依赖开发工具的支持,Sun,IBM,Orcale都提出了对JSF开发工具的支持,但是这些开发工具 在简化开发方面是否做足了功课,宠大、全面、无所不能一直是众厂商炫耀技术的舞台,这次Apusic Studio提出了简化,易用两方面特性,这点从程序员角度出发的开发工具,我们还是值得期待的。

5.扩大影响力

每一种技术都要有忠实狂热者,同时要让更多人的来应用和学习,Struts成功就是很好例证,一位著名IT人士曾经说过,“即使公司发生惨 绝人寰的人事大变动,产品经理也不必过于惊惶失措,茫茫人海中,有大批的Struts们可供选择,只需好好考虑好新员工的业务培训如何开展即可,而对于技 术延续性,则不必太过于担心,这就是Struts 带来的战略性优势。

也是Struts在今天技术落后的情况还能一直保持领先地位,这点还是值得反思的,JSF如何在影响上扩大学习者的基层人群,打消企业的后顾之忧,影响高层对JSF企业框架的应用选择,不知JSF是否做好了准备。

综上所述只是个人观点,如果JSF能在影响力和扩大人层基数上突破瓶颈,那么统一Web开发的格局将指日可待。
分享到:
评论
2 楼 jiming 2010-05-27  
我曾经在两个项目中用到了 JSF。

感觉他有优点也有缺点。但是随着新技术的出现,我对他的前景越来越不看好。Seam 最大的败笔就是与 JSF 紧密结合了。

现在放弃对他的推荐。请读者注意。
1 楼 johnnyhg 2008-01-09  
这么好的东西,怎么还没推广开呢 ?
可见并不是你所说的那么理想的。

相关推荐

    JSF Web 应用开发实战源码

    在"JSF Web应用开发实战源码"这个资源中,你将找到一系列针对JSF框架的实践示例。这些实例涵盖了JSF的基础到进阶用法,对于初学者来说是极好的学习材料。下面,我们将深入探讨JSF的一些核心概念和技术点: 1. **JSF...

    jsf教程 JSF为JAVA的 Web应用用户界面

    JSF为JAVA的 Web应用用户界面的开发人员提供了标准的编程接口、丰富可扩展的UI组件库(一个核心的JSP标记库用来处理事件、执行验证以及其他非UI相关的操作和一个标准的HTML 标记库来表示 UI组件)、事件驱动模型等...

    JSF实战 练习 开发

    JSF通过提供一个统一的API,使得开发者能够更容易地构建可重用的UI组件,从而提高了开发效率。 #### 二、JSF的核心概念 ##### 1. 组件架构 - **基础组件架构**: JSF提供了一个组件架构,该架构定义了一种通用的...

    2007年图书:JSP_JSF_Tomcat Web编程从入门到精通

    JSP_JSF_Tomcat Web编程从入门到精通》这本书主要涵盖了Java服务器页面(JSP)、JavaServer Faces(JSF)以及Tomcat应用服务器在Web开发中的应用,旨在帮助初学者及有一定基础的开发者深入理解和掌握这三大技术。...

    JSF入门+JSF web实战+JSF2

    JavaServer Faces(JSF)是Java平台上的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。它提供了一种声明式的方式...总之,JSF是一个强大的Web开发框架,掌握了它,就能更好地应对企业级Web应用的挑战。

    JSF.rar_JSF WEB应用开发

    **JSF(JavaServer Faces)** 是一种基于Java的服务器端UI框架,由Sun Microsystems(后被Oracle收购)开发,用于构建Web应用程序。JSF的核心理念是提供一个组件化的、事件驱动的用户界面模型,使得开发者可以更方便...

    JSF开发文档

    JSF还能够与多种开发工具和IDE(集成开发环境)无缝集成,极大地提升了开发效率,并使得开发人员能够通过他们熟悉的工具来开发Web应用。由于JSF框架屏蔽了许多Web开发中的细节问题,如HTTP协议处理、数据验证和转换...

    web开发框架——JSF开发实战一(图)

    JSF将是J2EE5.0中所包含的web开发框架,这应该是第一个成为jcp标准,并且随j2eesdk一起发布的web框架,可以看出sun对它的期望很高。JSF最大的竞争对手是tapestry,是apache的产品,但是apache又弄出了个myfaces,是...

    VisualWebJSF架构使用教程.rar

    总的来说,这个教程涵盖了VisualWebJSF的各个方面,无论你是Web开发的新手还是希望提高JSF开发效率的专家,都能从中受益。通过学习,你将能够利用VisualWebJSF的强大功能,快速构建出功能丰富的Web应用。

    JSF开发必备JAR

    这些文件您可以在 sample 目录下,解压缩当中的一个范例,在它的/WEB-INF/lib目录下找到 <br>并不能找到standard.jar文件。(难道是我下载的JSF reference implementation 版本的原因?) <br>无论...

    JSF2开发代码示例

    JSF2.2是该框架的一个重要版本,带来了许多增强功能和改进,使得开发者能够更加高效地进行Web应用开发。在这个"JSF2开发代码示例"中,我们将深入探讨JSF2.2的核心特性,特别是与AJAX和PrimeFaces组件库相关的部分。 ...

    开发JSF所需要的jar包

    JavaServer Faces(JSF)是Java平台上的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。它提供了一种组件化的方式来构建用户界面,简化了前后端交互的复杂性。在JSF中,开发者可以使用声明式编程模型...

    如何使用JSF开发

    总的来说,JSF是Java Web开发的一个重要工具,它提供了一种组件化、规范化的开发方式,有助于提升开发效率,保证应用质量,并且具备良好的扩展性和兼容性。通过学习和掌握JSF,开发者可以更专注于业务逻辑,而不是...

    《JSF Web应用开发实战》——原创精品系列

    《JSF Web应用开发实战》是一本专注于JavaServer Faces(JSF)技术的原创精品教程。JSF是一种Java平台上的用户界面组件框架,用于构建和维护动态Web应用程序。该书旨在帮助开发者深入理解和掌握JSF的核心概念、组件...

    一种新的基于JSF技术的Web用户界面开发方法.pdf

    尽管JSF在简化Web用户界面开发方面具有明显的优势,但它也有自己的局限性。例如,早期版本的JSF在性能优化和学习曲线方面存在一定的挑战。然而,随着JSF 2.0及后续版本的发布,这些问题得到了显著改善,性能得到了...

    JSF开发介绍

    ### JSF开发基础详解 #### 一、JSF(JavaServer Faces)概述 JSF,全称为JavaServer Faces,是Sun ...通过其独特的组件化和生命周期管理机制,JSF极大地简化了复杂Web应用的开发过程,提高了开发效率和应用质量。

    JSF web jar包

    JSF(JavaServer Faces)是Java平台上的一种Web应用程序开发框架,它为构建用户界面提供了一种组件模型。这个"JSF web jar包"包含了开发基于JSF的应用程序所需的所有核心库,使得开发者能够快速地搭建并运行Web项目...

    eclipse+JSF开发配置图解

    - **WTP 2.0 (Web Tools Platform)**:增强Eclipse对Web应用的支持,包括JSF开发。 #### 插件安装 WTP 2.0的安装需先安装以下前置插件: - **Eclipse Modeling Framework (EMF)**:提供模型驱动架构的工具和框架。 ...

Global site tag (gtag.js) - Google Analytics