天空是蓝色的

做好软件为中国 #gcc -c helloworld.c -o helloworld.o //编译目标文件 #gcc helloworld.o -o helloworld //编译成可执行exe #helloworld //运行exe
数据加载中……
Tapestry Developer's Guide-Chapter 4. Tapestry Pages

页面是特殊的组件,按照组成,它有一个规范,嵌入的组件,assets,和HTML模板。

 

页面没有参数,因为他们是组件的最外层。

 

所有的组件,不管他们嵌套多深,都有一个页面参数指向他们所依赖的页面组件。页面有一个引擎参数指向当前所依赖的引擎。

 

页面在一个池中被共享,所以在同一个web程序下页面的单个的实例能提供给多个会话使用。甚至大量的客户端会话请求时,池也会产生少量页面实例的来处理请求。池机制使得页面实例化的数量在处理并发的情况下实例化最少页面。

 

页面可能有持久状态,对于不同的用户,参数在请求周期内保持特定的值,这些参数驻留在HttpSession中。页面状态和页面实例是完全分离的。为了处理并发的请求,一个不同的Page从池内被创建来处理请求,事实上,in a clustering environment, the request may be serviced by an entirely different server.

Tapestry
有效的明显的隐藏了这些细节;当程序的任何一部分请求一个页面,池收回一个实例,这个实例保持先前被一个用户已经赋值并持久化。

 

持久,从语文的角度来讲,我理解为在某段时间内不变就是持久。在这里应该指的是HttpSession周期。

 

事实上,任何组件可能有持久状态,使用Pages意味着记录那个状态。

 

引擎是一个session持久化对象。

 

visit对象是引擎对象的一个属性,序列化。

 

Pages不是session持久化的,它们只存在java VM的内存中,第一次创建,Pages和组件不需要实现java.io.Serializable接口。

 

The application engine 可以总是实例化一个新的页面实例并别重置它之前记录的状态(被记录的状态信息被序列化到引擎上了)。

 

posted on 2005-11-08 17:32 bluesky 阅读(352) 评论(0)  编辑  收藏 所属分类: 框架应用


只有注册用户登录后才能发表评论。


网站导航: