基于JSF技术的WEB应用研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:hastenhe
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:介绍JSF是一种新的开发WEB应用程序的框架,探讨了JSF框架的基本工作机制及具体应用。
  关键词:Java Server Faces (JSF);框架;组件;事件监听
  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2008)06-10000-00
  
  Research of WEB Application Based on JSF Technology
  HU Nan
  (Department ofLoudi Occupation Technical College,Loudi 417000,China)
  Abstract:This paper introduces JSF is a new develop framework for WEB application.in the meantime,the basic work mechanism and particular application of JSF framework are also discussed.
  Key word: Java Server Faces (JSF);framework;component;Action Listener
  
  1 引言
  
  随着网络的高速发展和分布式数据库处理技术的广泛应用,计算机软件项目的规模也越来越大,竞争日趋激烈。许多软件开发组织已经开始大量的使用B/S模式来开发Web应用程序,但同时B/S模式的Web应用程序却失去了传统C/S模式程序的高速处理和易管理的图形用户界面。微软Visual Studio.net程序开发技术虽然弥补了这些不足,但在跨平台和企业级应用开发领域上并没有优势。Java Server Faces (JSF) 技术正是为了解决这些问题应运而生的,虽然JSF和早期出现的Struts同属于Web应用框架,但它们是两种分属于不同性质的框架,Struts只是单纯的MVC模式框架,而JSF是一种事件驱动型的组件模型。使用JSF,开发Web应用程序将与开发Swing程序类似,可以拖放控件,写事件监听器。现在JSF技术已经得到了许多大厂商的支持,如SUN公司的JSF Web UI、IBM公司的JSF extension以及Oracle的 ADF Faces等,同时IBM、Sun、Borland和Oracle等公司都为JSF提供了开发环境。本文将详细介绍JSF技术和JSF技术的应用。
  
  2 JSF体系结构
  
  JSF既是Web应用程序的用户界面标准,也是遵循MVC体系结构的框架。图1显示了JSF的体系结构。如图所示,用户界面代码(视图)与应用程序数据(模型)是分开的,而所有的交互都由FacesServlet(控制器)处理。
  
  图2JSF的工作方式
  Lifecycle对象处理JSP请求的过程包括:
  1)恢复视图。在该阶段中重建组件树。
  2)应用请求值。在这个阶段,使用请求里的当前值来更新每个组件的本地值。
  3)处理验证。当每个组件的本地值被更新后,Lifecycle对象都会验证这些值的合法性。
  4)更新模型值。负责更新服务器端的实际值。
  5)调用应用程序。在本阶段中,JSF控制器调用应用程序来处理应用程序级事件。
  6)呈现响应。此阶段将在视图中显示当前状态的所有组件。在程序内部,JSF会调用encode( )方法,并显示保存在FacesContext对象中的组件树。
  图3所示为JSF请求处理过程中的各个阶段。
  
  图3 JSF请求处理过程中的各个阶段
  
  3 JSF技术的应用
  
  JSF是一种用于构建Web应用程序的新标准Java框架。它提供了一种以组件为中心来开发Java Web用户界面的方法,从而简化了开发。“企业开发人员”和Web设计人员将发现JSF开发可以简单到只需将用户界面 (UI) 组件拖放到页面上,而“系统开发人员”将发现丰富的JSF API为他们提供了强大的功能和编程灵活性。JSF还通过将良好构建的模型-视图-控制器 (MVC)设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。JSF具有良好定义的请求处理过程和丰富的组件层次结构,利用JSF提供的可重用、可扩展、基于组件的用户界面框架,在快速开发工具RAD的支持下,可以通过拖放组件的方式对Web用户界面进行可视化编辑,将用户界面上的组件与一个数据源绑定,并将客户端用户界面产生的事件交给服务器端处理,从而大大降低基于Java的Web用户界面的开发难度,提高开发效率。
  JSF技术包括两个主要部分:
  1) 一组用于表示用户界面组件并管理其状态、处理事件和验证输入的JavaAPI,这些API支持国际化和可访问性(Accessibility);
  2) 一个用于在JSP页面中表示JSF 组件的自定义标签库。
  概括的说,JSF的主要部分是一个GUI组件框架和一个用于跨不同标记语言或客户端设备描述组件的灵活模型。JSF GUI组件框架使开发人员能够创建JSF应用程序的用户界面。JSF GUI组件包括标准的HTML表单控件(如按钮)、布局组件,以及更复杂的组件,如数据表。此外,用户还可以扩展规范中定义的基本类,来开发额外的GUI组件。
  以下是建立一个JSF应用通常所需要的几个步骤:
  1)开发模型对象
  JSF技术做到了应用程序的业务逻辑和表示的完全分离。JSF使用后台Bean来实现这种分离。在模型设计部分,程序员只需要考虑程序的逻辑功能,不需要考虑数据的表现形式。
  JSF的模型(JavaBean)是根据页面中组件需要处理的业务逻辑而设计实现的,用来保存用户的输入和组件的数据。在JSF中使用JavaBean可以直接在JSF页面中声明或者在配置文件faces-config. XML中声明。
  页面设计人员使用标签的value属性将一个组件值绑定到一个后台Bean的属性,代码如下:
  <h:inputText id=〝email〞 value=〝#{Userbean.email}〞/>
  此代码将名为email的文本框与Userbean后台Bean的email属性绑定在一起。
  组件开发人员需要在faces-config.xml文件中配置受管理的后台Bean。代码如下:
  <managed-bean>
  <managed-bean-name>Userbean</managed-bean-name>
  <managed-bean-class>messages.User</ managed-bean-class >
  <managed-bean-scope>session</ managed-bean-scope>
  </managed-bean>
  此代码为后台Bean类User指定一个名称即UserBean,此外将scope属性设为session。
  2)开发基于JSF的用户界面。
  开发基于JSF的Web应用程序,是在JSF提供了一组丰富的、可重用的服务器端用户界面JavaAPI组件的条件下实现的。用户可以很容易地在可视化环境中利用这些组件构建Web用户界面,处理组件的数据校验、事件处理等用户界面管理问题。
  JSP页面是JSF应用的用户接口,每个页面包括一些用来描述web控件的JSF组件,设计每个需要的JSP页面时,在页面中放置JSF的内置组件,并将组件映射到各个JavaBean。页面设计人员利用RAD工具能通过拖放组件的方式轻松实现页面文件,不需要手写大量代码。开发工具自动生成页面对应的java文件,在文件中定义好了页面的JSF组件及其getter、setter方法以及JSF组件的“action”属性对应的方法等。程序员可以方便地在已有程序的基础上修改、调试。
  下面代码片段显示了接收用户名和密码以及“登录”按钮的JSF代码。
  <h:outputLabel value=〝电子邮件〞for=〝email〞/>
  <h:inutText id=〝email〞value=〝#{Userbean.email}〞/>
  <h:outputLabel value=〝密码〞for=〝password〞/>
  <h:inutText id=〝password〞value=〝#{Userbean.password}〞/>
  <h:commandButton id=〝login〞action=〝#{Userbean.verifyUser}〞 value=〝登录〞/>
  3)编写事件监听器或者导航规则
  编写事件监听器来决定特定事件发生时应该有的反应,导航规则涉及到定义应用程序中各种页面的跳转,两者就构成了JSF的控制器的设计。主要操作在两个配置文件中:web.xml文件和faces-config.xml文件(均在WEB-INF目录下)。web.xml文件主要用于控制JSF的生命周期,实现部署描述符。faces-config.xml文件实现导航,在文件中控制页面之间的跳转流程。
  例如,如果输入的用户名和密码正确,则转向登录成功页面,否则转向登录失败,要求重新登录的页面,这些操作是通过在faces-config.xml文件定义导航来实现,代码如下:
  <navigation-rule>
  <from-view-id>/login.jsp</from-view-id>
  <navigation-case>
  <from-outcome>success</from-outcome>
  <to-view-id>/groups.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
  <from-outcome>failure</from-outcome>
  <to-view-id>/login.jsp</to-view-id>
  </navigation-case>
  </navigation-rule>
  
  4 结束语
  
  JSF是基于Java 的Web 应用开发领域里提供的一个可重用、可扩展、基于组件、工具友好的、开放的服务器端UI 框架。它的出现,很大程度上提高了中小型Web应用系统开发的速度。它具有强大的组件体系和事件处理系统,完全实现了MVC模式的应用架构,使得基于Java技术的Web应用开发难度大大降低,提高了开发效率,非常适用于Web系统的开发。尽管在Web应用开发中,JSF表现出其旺盛的生命力,但JSF技术还不是很成熟,还有很多不足,例如组件命名怪异;数据验证上扩展性不高;大部分代码都是Servlet,都要在web.xml中配置,使得运行效率降低,服务器端负载加大。但随着JSF技术的不断成熟和版本更新,其必将获得更加广泛的应用。
  
  参考文献:
  [1]Kito D Mann. Java Server Faces int Action[M]. Manning Publications.2004.
  [2]王俊标.精通Java Web开发:基于Struts EJB Hibernate JBuilder[M]. 北京:人民邮电出版社,2007.
  [3]北京阿博泰克北大青鸟信息技术有限公司. J2EE框架技术—Struts
其他文献
摘要:基于IEEE802.15.4标准的ZigBee技术具有低成本、近距离、低功耗的优点,正符合未来一些无线互连设备的需要。本文首先介绍了Zigbee技术的概念、特点和协议模型,在此基础上探讨了ZigBee技术的应用并与其他几种无线通信技术做了比较。  关键词:ZigBee技术;IEEE802.15.4;无线通信  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2008)06
摘要:视频点播(VOD)是一种以用户为主导的音视频信息系统。传统的VOD系统多是C/S模式采用服务器机群或者代理缓存的方式来实现,这会带来较大的硬件和管理开销,系统扩展性也难以得到保证。文中提出了一种基于P2P结构的视频点播的设计方案,分析了采用P2P技术以后视频点播系统对于节点闲散资源的利用和保证播放质量等方面的优势,并探讨了在系统设计与实现中的相关技术与方法。  关键词:视频点播;P2P;缓存
摘要:服务器漏洞是安全问题的起源。只有了解可能存在或潜在的安全问题,才能采取相应的防护对策,保证Oracle数据库的安全性。本文讨论了基于Oracle数据库下服务器可能出现的一些安全问题,并提出了相应的安全防护对策。  关键词:oracle数据库;服务器;安全问题;防护对策  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)06-00ppp-0c    Server S
摘要:共享网络带宽是网络用户非常关注的一个问题。HomeShare是一款易于宽带用户使用的共享软件,适应于以太网、ADSL、有线宽带、WLAN等。HomeShare提供了5种网络连接方式,本文针对5种不同连接方式下的设置进行比较说明。  关键词:HomeShare;共享网络;无路由器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)04-1pppp-0c    Net
摘要:初步探讨了数字校园建设中应用WebGIS技术构建电子地图的思路与开发流程,定义了数据结构,对系统的总体框架、系统功能、数据库进行了设计。  关键词: WebGIS;电子地图;地理信息系统;数字校园  中图分类号:TP315文献标识码:A文章编号:1009-3044(2008)06-00ppp-0c    The Preliminary of Campus Construction Based
摘要:本文首先阐述了ACD的排队理论;其次对先到先服务、优先级服务的排队策略,基于负载均衡、座席技能级别、客户信息和经验的路由算法进行了详细地分析;最后提出可根据呼叫到达时间、主叫号码、DNIS、用户可接受的等待时间、客户等级多项参数进行线性加权确定优先级的排队算法策略,根据系统规模、服务效率、客户信息等来综合地确定路由分配方法,真正实现合理的排队和智能的路由分配。  关键词:呼叫中心;ACD;排
摘要:随着Internet的普及,电子邮件已经逐渐取代传统邮件日益广泛地影响着我们的生活与工作,而邮局协议是保证我们通过客户端软件成功获取电子邮件的协议。本文结合目前市场功能最强大的协议分析软件Sniffer Pro对邮局协议进行直观的分析与研究。  关键词:Sniffer Pro;POP3;电子邮件  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)06-10ppp-
摘要:IP地址作为一种稀缺的网络资源,如何合理充分的使用是值得研究的问题。本文从网络系统设计的角度,以子网掩码、网络号的概念、应用、计算等内容对IP地址规划做了较为详细的叙述。  关键词:IP地址;网路设计;子网掩码  中图分类号:TP309.5文献标识码:A文章编号:1009-3044(2008)06-10ppp-0c    IP Address Planning Study In Networ
摘要:介绍利用oracle存储过程解决C#.net中组合查询的程序设计.其目的就是为程序开发者提供一种解决组合查询的可行性方法,也为类似数据库和语言编程者开发组合查询控件提出一种思路。  关键词:C#.net;存储过程;组合查询;程序设计  中图分类号:TP309.05文献标识码:A 文章编号:1009-3044(2008)06-10ppp-0c    Use of storage solutio
摘要:随着校园网络规模的不断扩大,用户数量也不断的增加,各种病毒与木马程序的泛滥,使得IP地址盗用十分普遍。不仅给网络计费带来了负面影响,而且破坏了正常的网络运行和应用,因此解决IP地址盗用问题是保证校园网安全运行、追查和防止来自校园网内部的网络攻击事件的首要条件。本文以解决IP地址盗用问题为出发点,提出了用户注册和交换机控制相结合的一种基于SNMP的四元模型的新防盗技术。  关键词:IP防盗;校