`
cucaracha
  • 浏览: 141213 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A8f3fa2f-18ce-3862-897a-5d2209197c90
Java NIO.2
浏览量:87791
7a076ba7-8ec8-3241-aa3c-67bb2f7856a2
Java EE 7 简明教...
浏览量:36633
社区版块
存档分类
最新评论

[Java EE 7] JSF 请求的生命周期

阅读更多
JSF 定义了标准的请求处理声明周期。开发人员了解相关知识可以帮助理解例如验证、数据转换、事件处理等操作会在哪个阶段被执行。

JSF 页面通过 UI 组件树进行展示,称作视图(view)。当客户端发起页面请求后,生命周期开始。在整个生命周期过程中,JSF 需要根据之前保存的状态来生成页面。当客户端提交页面的时候,JSF 必须执行几个任务,比如验证视图组件中的输入数据、转换客户端输入的数据为服务端定义的类型、绑定数据到后台 bean。JSF 执行这些任务是通过生命周期中的几个步骤。

不同的应用程序组件都需要经过以下生命周期:

恢复视图

恢复和创建服务端组件树,用于展示客户端的 UI 信息。

如果客户端第一次请求到某个 URL,那么会创建一个新的 View 对象用于展示,这个视图会保存到当前的 FacesContext 中。如果已经在 FacesContext 找到视图对象,那么就会恢复视图并进行展示。

任何 UI 组件上的自定义转换器、验证器、渲染器也都会在这个时期被恢复。如果 UI 组件上的值直接映射到了后台 bean 的某个属性,那么属性值将会加载并且与 view 关联。大多数的这些操作都会 ViewHandler.restoreView 中进行。

接收请求值

这个时期会根据客户端提交的请求参数、header、cookie 来更新服务器端组件。

更准确地说,会调用所有组件的 UIComponent.processDecodes 方法。

验证处理

这个时期会处理 UIComponent 配置的验证和转换。

在这个时期,所有组件的 UIComponent.processValidators 方法将会被调用。如果验证和转换过程中出现错误,此生命周期将会结束并向客户端展示错误信息。

更新数据模型

到这个时候,说明数据验证已经通过。

UIComponent 的值将会同步到模型对象,通常是后台 Bean。在这个时期,将会调用所有组件的 UIComponent.processUpdates 方法。设置模型对象的值有可能导致事件排队或触发。

调用应用


调用业务逻辑和进行页面导航处理。

所有注册到 UIComponent 上的监听器将会被调用。例如,所有的像 command button 或 hyperlink 这样拥有默认事件监听器的 action 组件,它们的事件监听器将会在这个时期被调用。

渲染响应


渲染响应到客户端。

在渲染响应之前,应用程序会自动调用 View 的 UIViewRoot.saveState 方法保存状态。

文章来源:http://www.aptusource.org/2014/04/java-ee-7-request-processing-life-cycle-phases/

0
1
分享到:
评论

相关推荐

    Java EE 7 tutorial 中的examples代码

    1. **Servlet 3.1**:Java EE 7中Servlet规范升级到3.1版,引入了异步处理能力,允许Servlet在不阻塞请求的情况下执行长时间运行的任务。同时,Servlet 3.1还支持WebSocket协议,为实时通信提供了可能。 2. **JSP ...

    Beginning JAVA EE 7经典

    2. CDI:是Java EE中用于依赖注入和上下文管理的规范,它负责管理Java EE应用程序中的对象生命周期和依赖关系。 3. EJB:作为Java EE规范的核心组件,EJB允许开发者创建可重用的商业逻辑组件,能够简化事务管理、...

    Java EE 7 API Documentation 官方英文版(html)

    7. **CDI (Contexts and Dependency Injection)**:CDI是Java EE的依赖注入标准,允许开发者声明性地管理对象的生命周期和依赖关系。Java EE 7中的CDI 1.1增加了更多的注解和上下文类型,提升了可扩展性。 8. **JAX...

    java ee 7 API

    Java EE 7(Java Platform, Enterprise Edition 7)是Java平台的一个版本,专注于为企业级应用程序开发提供服务。这个API集合了一系列的组件、接口和服务,帮助开发者构建可扩展、高性能、安全且可维护的企业级应用...

    JSF生命周期及组件开发

    在JSF中,客户端发送的请求和服务器端的处理遵循一个特定的生命周期流程,这个流程对于理解JSF应用程序的行为至关重要。 JSF生命周期分为五个主要阶段,每个阶段都有其特定的任务和目的: 1. **恢复视图**...

    Java EE 7 Recipes

    本书内容涵盖了Java EE 7的关键技术和实践方法,包括Servlets、JavaServer Pages (JSP)、JavaServer Faces (JSF)、Java Persistence API (JPA)、Enterprise JavaBeans (EJB)等。 #### 详细知识点解析 ##### 1. **...

    Digital Java EE 7 Web Application Development pdf

    生命周期是JSF框架处理Web请求的步骤序列,包括请求的恢复、请求值的获取、验证、模型值的更新、应用的调用以及响应的渲染。这一部分还涵盖了事件处理、表达式语言、立即和延迟表达式、映射和列表表达式,以及页面...

    The Java EE 7 Tutorial

    《The Java EE 7 Tutorial》是一份针对Java EE 7平台的官方教程,旨在帮助开发者掌握Java EE 7的最新技术。Java EE(Java Platform, Enterprise Edition)是一个用来开发企业级应用的平台,它包括了一系列的标准和...

    精通Java EE:精通Java EE 整合应用案例\源代码\源代码2-9章.

    学习这部分内容,你需要理解Servlet生命周期,会配置web.xml,掌握JSP标签库和EL表达式,以及使用MVC设计模式。 2. **JavaServer Faces (JSF)**:JSF是Java EE提供的一种声明式UI框架,简化了用户界面的创建。了解...

    JSF 应用程序的生命周期.rar

    **JSF(JavaServer Faces)应用程序的生命周期**是开发者在构建Web应用程序时必须理解的关键概念。JSF是一种Java EE(现在称为Jakarta EE)技术,用于构建用户界面,特别是用于服务器端的交互式Web应用程序。它提供...

    java EE教程

    CDI是Java EE中的依赖注入框架,允许开发者声明性地管理对象的生命周期和依赖关系,提高了代码的可测试性和可维护性。 8. **JMS(Java Message Service)** JMS是Java EE中的消息中间件API,用于创建、发送、接收...

    Java EE期末考试试题

    在期末考试中,你可能需要了解Servlet的生命周期、初始化、服务和销毁方法,以及如何通过`@WebServlet`注解来配置Servlet。 2. **JSP (JavaServer Pages)**: JSP是一种用于创建动态网页的技术,它将HTML代码和Java...

    Java EE Web编程(Eclipse平台)源文件

    12. **CDI(Contexts and Dependency Injection)**:Java EE中的依赖注入框架,用于管理对象的生命周期和依赖关系。 13. **WebSocket**:Java EE 7引入的新特性,支持双向通信的网络协议,用于实时Web应用。 14. ...

    java ee教程(电子教案)

    7. **CDI(Contexts and Dependency Injection)**:CDI为Java EE应用提供依赖注入和上下文管理,简化组件之间的依赖关系和生命周期管理。 8. **WS(Web Services)**:Java EE支持SOAP和RESTful两种类型的Web服务...

    Java EE Web编程(Eclipse 平台)

    资料可能包括Servlet生命周期、服务方法、初始化参数、过滤器和监听器的使用等内容。 4. **JSP(Java Server Pages)**:JSP用于生成动态网页,结合HTML和Java代码。可能涵盖EL(Expression Language)、JSTL(Java...

    java EE帮助文档

    它们为业务逻辑提供了容器管理的服务,如事务处理、安全性、生命周期管理和并发控制。 4. **JMS(Java Message Service)**:JMS允许Java应用程序创建、发送、接收和阅读消息。它是异步通信和解耦架构的关键部分。 ...

    精通Java EE:精通Java EE 整合应用案例\源代码第三章

    学习如何创建Servlet,配置web.xml,理解生命周期方法如init(), service()和destroy()。 2. **JSP(JavaServer Pages)**:JSP是一种视图技术,用于生成动态HTML或XML内容。JSP页面结合了HTML和Java代码,通过JSP...

    A Java Petstore using the Java EE 7.zip

    Java EE 7是Java企业版的一个重要里程碑,它包含了许多更新和增强的组件,如JavaServer Faces (JSF) 2.2、Java Persistence API (JPA) 2.1、Java Transaction API (JTA) 1.2等。这些组件共同为开发人员提供了一套...

Global site tag (gtag.js) - Google Analytics