• 第六周 javaee 作业


    一、JSF 的 life cycle  

    1.1   JSF(JaveServer Faces)生命周期有六个阶段,这六个阶段显示了典型的一个JSF处理一个form GUI虽需要做的事情:

    • Restore View - 建立或者恢复原来的页面

    • Apply Request Values - 设置请求值为组件的提交的值

    • Process Validations - 转换和验证组建的值. 设置组建的值为组件提交的值

    • Update Model Values - 设置Backing bean的属性值为组件的值 

    • Invoke Application - 执行actionListeners and actions.

    • Render Response - 返回response.

    这里值得提到的一点是如果组件里面有immidiate这个attribute,对于这个组件JSF的生命周期会从Apply Request Value这一步骤直接跳到Render Response而不会进行中间的步骤

    图示如下:

    JSF生命周期 <wbr>(JSF <wbr>Life <wbr>Cycle)

    或者如下图:

    1.2  对JavaServer Faces生命周期的进一步概述:

     JavaServer Faces应用程序的生命周期从客户端对页面发出HTTP请求开始,到服务器响应页面时结束,然后转换为HTML。

     生命周期可以分为两个主要阶段:执行和呈现。执行阶段进一步划分为子阶段,以支持复杂的组件树。该结构要求将组件数据转换和验证,处理组件事件,并以有序的方式将组件数据传播到bean。

     JavaServer Faces页面由一棵名为view的组件树表示。在生命周期中,JavaServer Faces实现必须在考虑从先前提交的页面中保存的状态时构建视图。当客户端请求一个页面时,JavaServer Faces实现执行几个任务,例如验证视图中组件的数据输入,并将输入数据转换为在服务器端指定的类型。

     JavaServer Faces实现执行所有这些任务,因为JavaServer中的一系列步骤都面临请求-响应生命周期。下图说明了这些步骤。

    Flow diagram of Faces request and Faces response, including event and validation processing, error handling, model updating, application invocation.

    二、FACELETS 的  life cycle

    (1) JSF规范定义了JavaServer Faces应用程序的生命周期。以下步骤为基于 Facelets 的应用程序的过程描述。

    1. 生命周期是在客户端使用Facelets创建的网页发出新请求时启动。 JSF创建一个新的组件树或javax.faces.component.UIViewRoot并放入FacesContex

    2. 如果可用的UIViewRoot应用于Facelets, 视图可以填充组件进行渲染。

    3. 新建的视图作为对客户端的响应而被渲染。

    4. 在渲染时,存储此视图的状态用于下一个请求。 存储输入组件和表单数据的状态。

    5. 客户端可以与视图交互,并从JSF应用程序请求另一个视图。 此时,保存的视图从存储状态恢复。

    6. 恢复视图再次通过JSF生命周期,如果没有验证问题,并且没有触发任何操作,最终将生成新视图或重新呈现当前视图。

    7. 如果请求相同的视图,则再次呈现存储的视图。

    8. 如果要求新视图,则继续执行步骤2

    9. 将新视图作为对客户端的响应。

    (2) Facelets是一种轻量级的页面声明语言,用于使用HTML样式构建JSF(JavaServer Faces)视图。

    它包括以下功能:

    • 它使用XHTML创建网页。
    • 除了支持JavaServer Faces和JSTL标记库之外,它还支持Facelets标签库。
    • 它支持表达语言(EL)。
    • 它是使用组件和页面的模板。

    优点

    • 它通过模板和复合组件支持代码可重用性。
    • 它通过定制提供组件和其他服务器端对象的功能可扩展性。
    • 编译时间更快
    • 它在编译时验证表达式语言。
    • 高性能渲染能力。
  • 相关阅读:
    EL表达式与JSTL
    jsp
    Servlet 会话
    Servlet 常用类
    Servlet
    Java 网络编程
    CentOS系统下安装python3+Django
    转载Alpine Linux常用命令
    转载Alpine基础
    CentOS启动docker1.13失败(Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.)
  • 原文地址:https://www.cnblogs.com/real-psyyyy1015/p/8819748.html
Copyright © 2020-2023  润新知