当前位置: 首页 > article >正文

JSF 原理简要介绍

JSF(Java Server Faces)的本质也是Servlet,只不过实现Servlet的方式不同而已。


那到底JSF是怎样的Servlet呢,有比较才会有不同。总结相同,区分不同。

首先,JSF与经典的Servlet请求处理的流程不同。熟悉Servlet的程序员都清楚,Servlet的请求处理是由界面的submit提交按钮将界面表单提交给后台,服务器通过request,session等对象获取表单数据,最后通过response对象将结果返回给界面。Servlet请求处理流程,是需要我们程序员去关注去实现的。

而JSF请求过程中不需要通过request等变量获取值,它将浏览器端的页面变量与服务端的java对象对应起来了,依靠事件驱动完成请求。程序员使用JSF再也不用关心如何在给后台传值如何在界面取值了。直接在界面中使用由数据的ManagedBean就行了。


其次,Servlet接口实现方式不同。

JSF的核心类javax.faces.webapp.FacesServlet,直接实现Servlet接口,该类定义为final类型,不希望开发人员去扩展实现,其已提供完整的对请求处理的解决方案。

httpServlet是abstract的,目的是让子类去实现,因此其他框架是对Servlet类的扩展实现。


还有,核心方法也不同。

HttpServlet根据request.getMethod的请求类型区分,是doPost还是doGet。

facesServlet会交由生命周期接口处理,由一下六个阶段。

1:恢复视图阶段负责创建或者恢复视图,视图指UIViewRoot对象,是UIComponent对象的子类,视图组件是请求对应页面的组件树的根(面向组件架构)

2:接受请求值阶段将页面元素对应组件树上的组件值。

3:处理验证阶段负责校验组件树上的组件值。主要是验证界面上定义了验证器组件的数值。一旦约束校验不通过,会抛出validatorException

4:更新模型值阶段将组件树上的值对应ManagedBean对象属性值。也就是为MBean赋值过程。

5:调用应用阶段负责处理自定义事件,界面上的action指向MBean中的方法,action对应的方法,是在该阶段被调用的。

6:渲染应答阶段:结果返给客户端浏览器

 

jsf生命周期的六个阶段,在这里只做概念性的介绍,后续还会做相应的说明。

http://www.lryc.cn/news/2416988.html

相关文章:

  • 802.11ac/ax (wifi6)中的Beamforming技术介绍
  • ERP系统之sap入门操作--sap的基本的了解入门
  • 港片怀旧:《鹰爪铁布衫》(1)
  • Linux环境如何下载文件
  • VRP基础
  • DNS是什么,有什么用(详细介绍版)
  • 【数模】多元线性回归分析
  • 单片机和sbit和sfr
  • 常用软件过程——RUP
  • TreeSet的使用方法总结、实现原理、使用示例
  • 语法制导的翻译总结
  • Aircrack-ng组件详解
  • 安卓屏幕分辨率及UI尺寸详解
  • 服务器配置篇 ━━ iis7配置php出现fastcgi的500错误,LocalSystem/LocalService/NetworkService/ApplicationPoolIdentity
  • 【UEFI实战】FSP简介
  • 并发——ScheduledThreadPoolExecutor 详解
  • 逻辑回归(Logistic)
  • 学习Qss--Qss的特性
  • 高并发下System.currentTimeMillis()性能问题及优化方案
  • 串口(SerialPort)的使用
  • 常用正交表(正交法编写测试用例)
  • Redis——持久化之RDB
  • rhapsody软件_Rhapsody集成引擎之日志篇(一)
  • 撞库及其危害性
  • log4net的使用步骤
  • 2的n次方对照表
  • 【Android 四大组件之Service】一文吃透Service 服务
  • Linux 文件系统挂载 INITRAMFS 与 INITRD
  • PreparedStatement 用法
  • Nginx-基本安装