欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

新一代Java Web开发框架JSF访谈实录(1)

来源: javaer 分享于  点击 45664 次 点评:230

新一代Java Web开发框架JSF访谈实录(1)


51CTO.com独家特稿】2008年12月25日,51CTO联合机械工业出版社邀请了Java开发专家、《JSF Web应用开发实战》一书的作者麻地河老师作客51CTO嘉宾聊天室,就Java Web开发框架和JSF技术与网友进行了深入交流。

麻地河:原名李文兵,湖南人,硕士。投身软件行业超过十年。最初在某贸易公司电脑部任程序员三年,后以系统分析员身份进入某软件公司,参与了若干大型MIS的需求分析、设计和编码,并先后担任开发部经理及总工等职务。此后职业规划渐从技术转向管理。曾在 Nortel某R&D中心任职,对外企的软件开发管理模式感受颇深,后受聘于国内某大型软件企业,负责项目管理。2004年辞职创业,现为顾问。 因不舍程序员身份,遂自诩为IT自由撰稿人,希望藉此认识更多的程序员朋友,分享彼此的程序人生。

以下为聊天实录,51CTO略有整理。

JSF站在Web技术的“前端”

51CTO:谈到Java Web开发,大家首先想到的是Servlet、JSP、Struts这些技术,这几个技术也反映了Java Web开发方面的一个进化过程。李老师能不能向大家介绍一下JSF是一种怎样的技术?在Java Web开发的技术发展体系中JSF处于一个怎样的位置?

麻地河:按照官方的定义,JSF是Java Web表示层框架。通俗地说:

1)JSF是继Servlet、JSP和Struts之后又一项Java Web应用编程技术;

2)JSF是编写网页的一种新方法。完整的Java Web应用包括网页、业务逻辑和数据库,其中后两者都有成熟的解决方案,例如EJB和JPA,唯独网页的编写还停留在很原始的阶段,需要处理诸多底层细节。JSF的出现正是为了解决网页编写的问题。可以说,JSF和EJB、JPA一起,构筑了Java Web应用完美的三层体系结构。

51CTO:与传统的Java Web开发的前端技术相比,JSF以面向组件、基于事件驱动模型的而闻名,这与基于请求驱动模型的技术相比有哪些优势?

麻地河:最大的优势,就一句话,极大地简化了网页的编写。在JSF之前,我们编写网页都是和tag、Http请求、http响应等打交道,而JSF允许我们将网页视为在Java桌面应用中司空见惯的窗口,用类似编写桌面应用的方式编写Java Web应用。在JSF里,没有tag、没有http请求,也没有http响应,取而代之的是UI组件、事件和事件处理例程这些普通Java程序员耳熟能详的概念。

当然,我这样表述JSF,并不是说JSF不需要tag和http请求响应,在JSF框架内部,真正支撑JSF运作的还是tag和http请求响应,只不过JSF屏蔽了细节,让程序员集中精力于业务逻辑代码。

51CTO:我们知道ASP.NET也是面向组件,基于事件驱动模型的技术,与ASP.NET相比,JSF在Web开发方面有哪些优势?

麻地河:与ASP.NET相比,JSF的优势我认为有这么两点:

1) 有些优势是JSF天生的,例如平台无关性,这是从Java语言中继承的优势。平台无关性的好处大家都很清楚,我就不废话了;

2) JSF是规范,而不是具体产品,这是Sun的聪明之处,也是Sun的厚道之处。事实上,Java的很多技术都是以规范的形式出现的,这与Microsoft以具体产品的形式推出新技术截然不同。规范的好处是允许不同厂商在具体产品上展开竞争,使用户受益。例如JSF,现在Sun自己的参考实现很少人用了,倒是一些开源的JSF实现如Apache的MyFaces等大行其道。Sun这样做既鼓励了竞争,又能腾出更多功夫致力于规范的改进,可谓一举两得。

3) 从技术的角度看,JSF不但与平台无关,甚至与用来描述页面的标记语言无关。换句话说,在PC上,我们现在通常以HTML为标记语言,实际上,在其他类型的终端上,如果描述页面的标记语言不是HTML,JSF仍然可以胜任。当然,这个优势,对于普通程序员好像意义不大,但如果眼光放长远一些,这种标记语言的无关性,是JSF技术前瞻性的具体表现,它使得JSF的生命力更长久。

51CTO:目前,JSF框架在IDE和厂商支持方面怎么样?有没有一些JSF开发的成功案例向我们介绍?

麻地河:基于Sun在Java业界的领袖地位,目前几乎所有的大厂商都在JSF上投入重金,这其中包括IBM,Oracle,BEA,Apache、Borland,JBoss等。大厂商的支持给JSF带来了繁荣,以IDE为例,现在JSF集成开发环境的选择面很大,我所知道的比较优秀的IDE就有NetBeans,IntelliJ IDEA,JDeveloper,JBuilder,MyEclipse等。这些IDE中,我个人主要使用NetBeans,《JSF Web应用开发实战》一书的范例也是基于NetBeans的,因为NetBeans是从Sun的JSF开发工具Sun Java Creator转过来的,在可视化开发的方面走得比较靠前,而可视化开发是JSF最重要的特征。

至于JSF的实际案例,已经有很多,大家上Google可以搜索到。在Google中输入allinurl:  "index.jsf",可以找到用JSF开发的网站,数量当以百万计了。大家要考察JSF在实际项目中的表现,可以试着访问这些网站,看看JSF能做什么,性能如何。这个搜索的含义是搜索含有index.jsf的url,这是JSF应用的一个明显特征。


相关栏目:

用户点评