分享
 
 
 

用JavaServer Faces开发Web应用

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

当你为服务器端应用开发用户界面时,你可以有很多选择,使用Jsp和Servlet的Java开发者一般使用HTML的用户界面组件来构建用户界面。这个主要是因为HTML的用户界面组件是所有的Web浏览器都支持的最小子集。当然,这样的Web应用与传统的独立胖客户端相比缺乏富有表现力的用户界面,因而功能更少,可用性也没有那么好。虽然applet可以用来设计出富有表现力的用户界面,不过Web页面的开发者可能并不精通Java程序设计。

另外,如果你参与一个大型Web系统开发的话,你可能会遇到一些技术上的难题,比如说如何实现一个查询构件或一个表浏览构件等数据库应用的组件等等等等。开发这些定制的组件需要专门的技术,而且要花一些时间来编译和测试新的库。在一个理想的情况下,开发者可以使用已经预先编译并且测试通过的,同时具有高度可配置性的组件来集成到自己的开发环境中。

JavaServer Faces 是一种可以开发富有表现力的用户界面的Web应用的服务器端技术,在它的帮助下,你可以解决像创建定制的用户界面组件这样的技术问题。这是因为, JavaServer Faces技术是一项开发运行在服务器端的Web应用程序的一个用户界面框架,它可以反过来向客户端提供用户界面。没错,用户界面的代码运行在服务器端,然而却可以响应客户端产生的各种事件。

其实现在已经存在多种可以开发富有表现力的用户界面的技术,比如Flash、 Swinglets和 Jade等。不过,这些解决方案都是专有的,而且开发工具一般也总是局限于某一个提供商。而JavaServer Faces最重要的就是它是一个标准,这意味着开发者不会被锁定到某一个单独的开发商。制定这个规范的专家组由Java开发社区的主要工具提供商的代表组成,这样开发者就不会缺乏可以选择的工具,而且他们可以使用现在使用的工具的最新版本。不过虽然各个开发商在制定规范的事情上相互合作,他们具体的实现却又相互竞争。这个就可以让开发者受益,他们可以使用工具商实现的各种特性,或是选择各种定制组件。

JavaServer Faces技术基于模型视图控制器(MVC)的把应用逻辑和表现相分离的思想,所以如果你理解MVC模式的话,你就可以真正理解JavaServer Faces技术。

本文是一个快速入门的教程,通过本文的学习,你可以开始使用JavaServer Faces 进行开发你自己的应用程序。同时本文还提供了一些其他的内容:

JavaServer Faces 技术的简介

使用JavaServer Faces 的好处

描述了JavaServer Faces内在结构

描述了JavaServer Faces技术的构成

通过一个使用JavaServer Faces 进行开发的例子,给你最直观的感觉

提供了一个例程,你可以修改一下用到自己的开发中

不过本文并没有包含如何开发定制组建的内容。

JavaServer Faces概览

JavaServer Faces是一项由Sun公司倡导的技术(其它相关可以参考JSR 127),它的主要目的是提供开发Web应用的用户界面的一个标准框架。如前所述,JavaServer Faces可以让你开发一个运行在Java服务器上的Web应用,它可以向客户端提供用户界面。这个技术使用Servlet作为控制器,提供了富有表现力的组件模型,实现了事件处理以及模型表现。从而提供了一个Web应用的生命周期管理。

JavaServer Faces有两个主要部分组成:

Java APIs用来提供UI组件、状态管理、事件处理和检查用户输入数据的功能。这些API同时支持国际化并且容易使用。

用来在一个JSP 页面内表现JavaServer Faces用户界面的JSP定制标记库。页面开发者可以通过这个标记库来开发丰富多彩的网页。

下图给出了客户端、服务器端和JavaServer Faces 之间的关系。

图1: UI 运行在服务器上

这里,这个JSP页面不是硬编码标记语言,而是通过使用JavaServer Faces定制标记库(tag library)来开发用户界面。应用程序的UI用来管理JSP页面所包含的组件对象。

很多人都可以享受到这项技术所带来的好处:

使用标记语言(比如HTML)的网页开发者可以使用JSP标记库开发出丰富多彩的JavaServer Faces 用户界面。

应用开发者可以专注于开发模型对象和进行事件处理。

组件开发者可以在JavaServer Faces 所提供组件的基础上开发新的定制组件。

工具提供商可以把JavaServer Faces 技术集成到新版本的开发工具中用来简化基于Web的多层应用的开发。

这项技术同时也打开了Web用户界面组件复用的市场。开发者和工具提供商可以像搭积木一样使用JavaServer Faces定制组件来构建用户界面。

JavaServer Faces 的一个优势就是使用模型、视图、控制器架构(MVC)来清晰地分离应用逻辑和表现。您可能会觉得这个可能会影响到那些使用现存Web框架技术比如 Struts的那些人。不过请注意,JavaServer Faces 和Struts并不是相互竞争的产品,事实上它们可以协作得很好。不过,JavaServer Faces确实比Struts有一些优势。举例来说,在Struts中,只有一种方式来表现一个元素,而JavaServer Faces却提供了多种方式来表现一个元素。选择适当的表现方式设计符合要求的表现是网页设计师的事情,应用开发人员并不需要知道使用哪一种机制来表示组件。(关于如何把JavaServer Faces 和Struts集成在一起,请参考integration of JavaServer Faces and Struts)事实上,读者可能已经注意到,Sun公司的Craig McClanahan就是Struts的作者,但他同时也是JavaServer Faces规范制定的头面人物。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有