返回顶部
首页 > 资讯 > 精选 >对话袁红岗:JSF的优势及未来发展趋势
  • 575
分享到

对话袁红岗:JSF的优势及未来发展趋势

2023-06-03 04:06:45 575人浏览 独家记忆
摘要

对话袁红岗:jsF的优势及未来发展趋势[@more@]JSF,有些人对他有些陌生,有些人对它抱以期望的目光,有些狂热者甚至预言未来的JAVA WEB主导者,2006年Sun把JSF从幕后推到了前台,那么JSF的命运如何呢?真的像人们所说的那

对话袁红岗:jsF的优势及未来发展趋势[@more@]JSF,有些人对他有些陌生,有些人对它抱以期望的目光,有些狂热者甚至预言未来的JAVA WEB主导者,2006年Sun把JSF从幕后推到了前台,那么JSF的命运如何呢?真的像人们所说的那样成为开源框架的终结者吗?

开源框架的风烟四起,让我们看到了Java WEB世界竞争惨烈,框架时代的来临已让开发者感到麻木和疲惫,人们在框架海洋里穿行不免有些劳累,不知哪种框架才是应用开发中的唯一选择,经历过Java开发的人员不得不对.net的组件,良好的集成工具,快速的开发效率报以羡幕的目光,于是有很多开发人员都提出为什么Java不能开发出和net具备同样的功能产品,来改变Java Web世界的混乱格局呢?

那么作为JCP组织成员,金蝶中间件对待JSF又是如何思考的呢?为此记者独家专访了在国内Java界有着广泛声誉的金蝶首席科学家袁红岗先生,请他谈谈JSF的未来的发展。


记者:最近我们也做很多关于JSF方面报道,有人称JSF是一种过时的技术,也有些人称为JSF是早晨八九点钟的太阳,我想请问一下袁总你怎么看待JSF这种技术和它的未来前景。


袁红岗:JSF这项技术没有过时,Sun最近刚刚把JSF纳个Java EE5.0规范,只不过一直没有用起来,开发者对他的这些看法也是正常的,如果从框架的角度的上说他是一个优秀的开发框架,主要缺少的是开发工具,如果与相关的开发工具的结合应该是比较有生命力的,它的前景还是很广阔的。


记者:刚才袁总谈到了开发工具,JSF是一项依赖开发工具很强一种技术,不知道金蝶是否也推出自已的开发工具?


袁红岗:的确,开发工具的成功,才能说明JSF的成功,有这样一句话“JSF is designed to tooled”换言之,JSF规范从设计初开始就强调对开发工具的依赖,目前我们JSF开发工具也在逐步的丰富起来,包括Orcale JDeveloper,Sun Java Statio Creator等等,金蝶也同样提供了基于Eclipse的集成开发环境:Apusic Stutio,通过该工具,能够给JSF的开发带来良好的支持,包括:语法加亮、代码辅助、断点调式、可视化的设计等等。


记者:Apusic Stutio开发工具与其它的JSF开发工具有哪些不同呢?


袁红岗:一个好的开发工具应该从组件和布局这些方面入手,从易用,简化上下功夫,微软的开发工具就很成功,金蝶的开发工具也是看到微软的成功,准备借鉴微软的开发工具模式,JSF才有成功的可能,JSF在概念上和.NET又有很多相似之处,Apusic Studio就是专门为JSF设计的。


记者:现在开源框架众多,JSF与众多开源框架相比又有哪些优势呢?


袁红岗:现如今的开源框架都是建立在J2EE本身的基础上的,建立Http,html底层协议的基础上,JSF实际上跟底层协议是无关的,它是一种高层的页面表达方式,它实际上生成不一定是HTML,也可以生成WML,假如HTML这种标记形语言被一种新的描述语言代替的话,JSF技术本身不会被淘汰。


记者:业界说ajax和JSF融合是一个完美的框架组合,不知袁总怎么看待这种说法?


袁红岗:目前JSF+Ajax这种思路,很多公司都有,包括我们金蝶自已在内, Ajax是一种客户端技术,JSF是服务器端技术,而且JSF在实现机制上还存在很多缺陷,Ajax在客户端的优势正好是JSF的弱势,这样两种形成一种互补的关系,可以相互融合,提升JSF运行性能,同时Apusic JSF技术也对Ajax进行组件支持,简化Ajax的开发,达到JSF与Ajax的完美融合。


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程序员来说,始终追随业界领袖的步伐,也许是避免技术落伍的最好方法。 1


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开发的格局将指日可待。

--结束END--

本文标题: 对话袁红岗:JSF的优势及未来发展趋势

本文链接: https://lsjlt.com/news/232685.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 对话袁红岗:JSF的优势及未来发展趋势
    对话袁红岗:JSF的优势及未来发展趋势[@more@]JSF,有些人对他有些陌生,有些人对它抱以期望的目光,有些狂热者甚至预言未来的Java Web主导者,2006年Sun把JSF从幕后推到了前台,那么JSF的命运如何呢?真的像人们所说的那...
    99+
    2023-06-03
  • PHP的未来发展展望及趋势分析
    PHP的未来发展展望及趋势分析 在互联网发展的浪潮中,PHP一直是一门备受推崇的服务器端脚本语言。作为一种开源语言,PHP具有易学易用的优点,并有着庞大的生态系统和一支充满活力的社区。...
    99+
    2024-04-02
  • 未来Go语言的发展趋势展望
    go 语言的未来发展趋势主要体现在语言特性进化、平台支持扩展、库和工具提升。具体包括:泛型、并行处理和错误处理等语言特性将得到增强。支持 webassembly (wasm) 和 arm...
    99+
    2024-04-03
    发展趋势 go语言
  • JavaScript Webpack 的未来展望:探索未来的发展趋势
    随着 JavaScript 生态系统的快速发展,JavaScript Webpack 也在不断演进,以满足开发人员不断变化的需求。目前,Webpack 正在积极开发其下一个版本 Webpack 5,预计将带来许多改进和新特性。其中一个备...
    99+
    2024-02-24
    Webpack JavaScript 打包工具 前端开发 未来展望
  • Python Django 未来趋势:展望 web 开发的未来
    1. 云原生开发 云计算的普遍采用正在推动对云原生应用程序的需求,这些应用程序可以在云平台上无缝运行和扩展。Django 已适应这一趋势,通过提供与 AWS、Azure 和 Google Cloud 等主要云提供商的集成。这使开发人员能够...
    99+
    2024-04-02
  • 传统CRM系统的优缺点及其未来发展趋势
    本文将探讨传统CRM系统的优势和劣势,并分析其未来的发展趋势。我们将从以下几个方面进行讨论:功能特点、用户体验、数据安全性和成本效益。功能特点传统CRM系统通常提供了一系列功能,包括客户管理、销售管理、市场营销和客户服务等。这些功能可以帮...
    99+
    2024-01-30
    优缺点 未来发展 趋势
  • PHP 函数库的未来发展趋势
    未来 php 函数库将继续发展,重点在于:更多地使用本机扩展,提高性能和低级功能访问。采用函数式编程原则,提升代码的可测试性和可靠性。整合云和无服务器架构,满足现代开发需求。支持异步编程...
    99+
    2024-04-22
    php 函数库 并发请求
  • Composer 的未来发展方向和趋势
    composer未来发展方向包括提高性能、增强包依赖性管理、加强安全性、增强集成。趋势有自动更新、协作包开发、容器化。实战案例:composer require guzzlehttp/g...
    99+
    2024-05-13
    composer php包管理
  • PHP 函数的未来发展趋势和展望
    php 函数的未来发展趋势包括:函数指针,用于将函数作为参数传递,增强灵活性。匿名函数,动态创建函数,简化代码。函数多态,同名函数根据参数类型具有不同行为,提高可扩展性。未来,php 函...
    99+
    2024-04-13
    php 函数趋势 高可扩展性
  • HTML5的未来发展趋势是怎样的
    本篇文章给大家分享的是有关HTML5的未来发展趋势是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 HTML...
    99+
    2024-04-02
  • HTML5未来发展趋势的示例分析
    这篇文章将为大家详细讲解有关HTML5未来发展趋势的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、移动优先如今移动应用层出不穷,可以用只有咱没想到的没有人家没...
    99+
    2024-04-02
  • PHP自动加载的未来发展趋势
    PHP自动加载是一种有助于加载类或接口文件的功能,它可以提高PHP应用程序的性能和可维护性。在过去几年中,PHP自动加载领域已经取得了重大进展,随着PHP语言的发展,我们预计在未来几年内还会看到更多的创新。 1. 命名空间自动加载 命名空...
    99+
    2024-02-08
  • 探索Go语言的未来发展趋势
    标题:探索Go语言的未来发展趋势 随着互联网技术的迅猛发展,编程语言也在不断演变和改进。其中,作为一门由Google开发的开源编程语言,Go语言(Golang)因其简洁、高效和并发特性...
    99+
    2024-04-02
  • Golang函数库的未来发展和趋势
    go 函数库的未来发展重点包括:模块化和可重用性,性能优化,与外部软件包的整合。这些趋势将促进函数库的广泛采用和高效使用。 Go 函数库的未来发展和趋势 Go 是一个不断发展的语言,其...
    99+
    2024-04-20
    golang 函数库 mysql git 标准库
  • PHP 函数的未来发展趋势如何?
    php 函数的发展趋势包括:匿名函数用于动态创建和使用函数。生成器函数通过“按需”生成值实现惰性计算。协程暂停执行,增强并发性和响应能力。这些特性有助于提升 php 应用程序的可扩展性和...
    99+
    2024-04-19
    函数 php
  • PHP函数的未来发展趋势如何?
    php 函数发展趋势:函数纯函数化:提升可测试性和维护性。生成器函数普及:处理大型数据集更便捷。响应式编程增强:异步环境中编写同步代码。类型提示优化:加强类型检查,提高代码质量。实战案例...
    99+
    2024-04-19
    发展趋势 php
  • golang框架的未来发展趋势如何?
    go 框架在未来将继续增长,原因在于其易用性、快速开发、可扩展性和并发性。未来趋势包括:与云计算更深入整合支持人工智能增强安全功能 Go 框架的未来发展趋势 Go 框架正变得越来越流行...
    99+
    2024-05-24
    框架 golang
  • golang函数类型的未来发展趋势
    golang 函数类型的未来趋势包括:即时函数类型(匿名函数)提供灵活性,可选和可变参数增强可变性,泛型函数类型提高可重用性,闭包中的函数类型实现延迟计算和状态管理。未来还可能出现协程、...
    99+
    2024-04-28
    golang 函数类型
  • 模板化编程的未来发展趋势?
    模板化编程通过类型参数化代码,提供可重用性、灵活性和性能优势。未来趋势包括:类型推断:简化模板化使用。概念编程:解决更高级别的抽象概念问题。元编程:在编译时生成代码和数据结构。 模板化...
    99+
    2024-05-08
    编程 模板化编程
  • C++ 内存管理:未来的发展趋势
    c++++ 内存管理正面临着三大发展趋势:智能指针的兴起,有助于消除指针错误,提高代码健壮性和安全性。内存池的使用,可减少内存分配和释放开销,提高应用程序性能。并行内存管理,满足多线程环...
    99+
    2024-05-02
    c++ 内存管理 作用域
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作