天宇的JAVA空间站


深入了解JSF

07-11-04 13:20Update
**Pink File**
TAGS: JSF

LifevV.COM编辑部

本文从较深层次上介绍了JSF。为了帮助读者朋友理解JSF,使用了一些通俗易懂的图形来加以说明。

Page:  <1|2>

序言
在JAVA社区里,WEB应用的开发一直存在开发难的问题。从开始的最简单的CGI程序,到JSP,SERVLET。虽然说JSP/SERVLET的出现大大减轻了开发的难度,但稍微复杂点的WEB应用,就会产生大量重复代码,后来为了解决这些问题,先后出现了诸如Struts, Spring等优秀的框架,并得到了很大推广。在这些基础上,Java社区进程(Java Community Process:JCP),包括Sun Microsystems、Oracle、Borland、BEA、IBM以及一群业内知名的Java和Web专家,开始制作JSF规范请求,最初的Java规范请求(JSR127)起始于2001年中期,并于2004年3月,正式公开发布了JavaServer Faces规范和参考实现。


什么是 JSF?
JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的标准 Java 框架。它的目的是简化WEB应用程序的开发。它基于组件技术,并提供了以此为中心来开发 Java Web 用户界面的方法,从而简化开发。JSF框架体系完美地集成了具有良好构建的模型-视图-控制器 (MVC) 设计模式,确保了应用程序具有良好的可维护性。另外,因为JSF 是由 Java Community Process (JCP) 开发的一种 Java 标准,所以完全可以得到各大开发工具供应商的支持,为 JavaServer Faces 提供易于使用的、高效的可视化开发环境。

JSF的体系结构
上面提到了JSF体系框架中的模型-视图-控制器 (MVC) 设计模式。我们具体来看看。典型的JSF应用:用户请求JSF页面,首先会统一把请求交由FacesServlet(Controller),FacesServlet里经过一系列的处理,调用业务模型(Model)处理,最后把JSP页面内容(View)展现给用户。

JSF的生命周期:
JSF把整个用户请求明确地分成了6个阶段,每个阶段完成不同的任务。一个典型JSF请求分成以下6个阶段:
  1. Restore View Phase:重载视图阶段

  2. Apply Request Values Phase:应用请求值阶段
  3. 这个阶段主要做2件事:第一,把用户提交的数据设置到组件中去;第二,把用户事件(比如按下按钮等)加到事件队列。
  4. Process Validations Phase:数据检查阶段
  5. 这个阶段主要做数据的合法性检查,如果用户输入了非法数据,则在画面上显示相应的错误消息。
  6. Update Model Values Phase:更新模型值阶段
  7. 把组件里的值设置到Model中去。
  8. Invoke Application Phase:用户业务逻辑阶段
  9. 主要处理用户按钮事件等,调用业务逻辑处理(action)。
  10. Render Response:重画画面阶段
  11. 画面描画和展现。



为了便于理解,用下面2个图加以说明:
JSF的生命周期 概要图


Page:  <1|2>
 
Copyright ©2006-2010 lifevv.com. All Rights Reserved
POWERED BY @pmplat.syboos.com