技术开发 频道

Tapestry PK JSF, 谁将成功晋级J2EE5 Web层框架?



三、 请求处理生命周期

何为请求处理生命周期呢?简而言之,过去必须自行编写代码才能处理的必要的后端处理,现在全由请求处理生命周期执行。除了处理进入的请求参数,它还管理服务器端的用户界面组件集,并把它们与用户在客户端浏览器中看到的组件同步。

请求处理生命周期在一个web应用中是很重要的,它反映了一个请求从提交到将信息返回给客户端的处理过程。当然,请求处理生命周期必须能以某种优雅的方式,在正确的地方插入用户定制的请求处理操纵逻辑。

1. JSF  

JSF的请求处理生命周期清晰的定义成六个步骤:恢复视图应用请求值处理验证更新模型值调用应用程序渲染响应。从第二步应用请求值开始,可以直接跳到最后一步渲染响应,甚至可以直接返回给客户端并且通知JSF运行时,响应操作已经完成了。有些方法要访问JSFFacesContext对象,比如状态监听器(Phase Listeners)、事件操纵器(Event Handlers)、转换器(Converters)、验证器(Validators)等,这都可能忽略请求处理生命周期中的某些步骤。

2. Tapestry

相对JSF有一个单一的生命周期模型而言,Tapestry的生命周期依赖于其调用的引擎服务(Engine Service)  每一个引擎服务(Engine Service)都有其自己的生命周期。比如,Tapestry中的Direct Service控制标单的提交,而Page Service用于渲染页面,并且不需要额外的服务端操作。每一个引擎服务(Engine Service)都被设计成在自身的生命周期内完成一些特定的任务。这就意味着,对于一个特定的需求,你可以创建一个对应的引擎服务(Engine Service),并且可自己定制生命周期。

    JSF的生命周期概念更容易理解,而Tapestry可对一个特定的操作定义一个生命周期,这在某些问题的解决上,可能会提供更优雅的解决方案。
0
相关文章