1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、JSF工作原理JSF应用程序实质上是一个运行在一个与 Java(TM) 2 Platform, Enterprise Edition (J2EE(TM) platform) 兼容的容器中的 Servlet 或者 Java Server Pages(JSP) 应用程序。但是,JSF 不要求在应用程序中使用 JSP 页面,您可以自由选择直接使用 Servlets 或者其他模板技术。如果确实对 JSP 容器使用了 JSF,您将通过 JSF 的客户组件标签从内建的 JSF 内核和 HTML 组件库中受益。JSF 组件代表像文本字段、表单、按钮、表格、复选框等的 Web 控件。 使用 JSF 创建一个 JSP 页面时在服务器的内存中会建立一个组件树,每一个组件标签对应树中的一个 UIComponent 实例该框架使用组件树来处理应用程序的请求并且创建一个呈现出的响应。当用户生成一个事件时,例如,点击了一个按钮,JSF 生命周期即处理该事件并且产生适当的响应。这是一个对大多数GUI编程的表单而言常见的一种的范例。每当用户做任何事情,如点击按钮或者提交表单,都有事件产生。然后事件消息通过 HTTP 传到服务器。在服务器端,是一个配置了叫做 Faces servlet 的特殊 servlet 的 WEB 容器。Faces servlet(javax.faces.webapp.FacesServlet)是所有 JSF 应用的引擎。每个 JSF 应用在 WEB 容器中都有独立的 Faces servlet 。 FacesServlet 是进入 JSF 框架的入口点。它处理请求处理生命周期并且用作一个前端控制器。JSF 也有保存重要请求信息的上下文的概念。上下文对象被称为 FacesContext(javax.faces.context.FacesContext)。在 JSF 生命周期的每个阶段上下文对象都被修改并且每次请求时都是有效的。 Faces servlet 为 JSP 页面创建了组件树,对组件树的控制又对应着事件。Faces servlet 知道怎么去创建组件树,因为它已经访问了当前应用中所有的 JSP 页面。Faces servlet 还会创建一个 Event 对象,并把它传递给所有注册过的侦听器。你可以通过与当前请求相对应的 FacesContext 得到这个页面的组件树。JavaServer Faces 的 MVC 实现 JSF 的主要优势之一就是它既是 Java Web 用户界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使 JSF 应用程序更易于管理。为了准备提供页面对应用程序数据访问的 JSF 上下文和防止对页面未授权或不正确的访问,所有与应用程序的用户交互均由前端“Faces”servlet(控制器)来处理。 图 1:JavaServer Faces 的 MVC 实现 JSF 生命周期Faces Controller servlet 充当用户和 JSF 应用程序之间的纽带。它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作。例如,一收到访问 JSF 应用程序的初始 Web 请求,Faces Controller servlet 便通过首先准备 JSF 上下文(存放所有应用程序数据的一个 Java 对象)来处理请求。然后控制器把用户指引到所请求的页面。该页面通常使用简单的表达式语言来处理来自 JSF 上下文的应用程序数据。一收到后续请求,控制器就更新所有模型数据(假设输入了新数据)。JSF 开发人员可以通过编程的方式在应用程序运行期间随时访问整个 JSF 生命周期,从而可以随时对应用程序的行为进行高度控制。现今的开源框架都是建立在J2EE本身的基础上的,建立HTTP,HTML底层协议的基础上,JSF实际上跟底层协议是无关的,它是一种高层的页面表达方式,它实际上生成不一定是HTML,也可以生成WML,假如HTML这种标记形语言被一种新的描述语言代替的话,JSF技术本身不会被淘汰JSF优势之一:UI组件(UI-component)UI组件(UI-component)一直是桌面程序的专利,web程序中,虽然HTML定义了基本的UI标签,但要使这些UI标签像UI组件那样工作,还需要很多代码片断来处理数据及其表现形式,而且有效地组织这些代码片断使其协调一致也是一件繁琐的工作。JSF 的UI组件是真正意义上的UI组件,能极大地简化程序员的工作,例如,在页面上放置一个文本输入框,这个输入框立即具备了数据填充、界面更新、事件侦听、动作触发、有效性检查和类型转换的功能。更为重要的是,程序员只需根据业务逻辑编写核心业务代码,JSF会保

文档评论(0)

638922bb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档