Tapestry 学习笔记:(一)

来源:互联网 发布:java frame text 编辑:程序博客网 时间:2024/06/06 08:40

开场白:这一系列的学习笔记是为了记录本人在学习使用tapestry的过程中的大小事。为了使用tapestry,你得从apache的网站上下载tapestry3.0的binary包,解压即可使用,不过要注意的是有两个包没有包含在其中,你必须从readme文件中给出的地址下载。然后配置好tomcat,就可以试用workbench例子程序了。

为了在eclipse中方便的开发tapestry应用,请安装spindle插件,这个巨好用的插件能使得你的开发事半功倍。

这个系列的文章不是helloworld级别的,或者petshop级别的,我的目标是通过写作,能搞明白这个框架的运作机制和如何开发复杂的可复用的tapestry组件。

我发现tapestry的设计真的是非常的优秀,尤其是在性能上,使用如此复杂的机制而能达到与jsp相同的相应能力,我想在架构设计上的优秀其功劳是不能否认的。

我们知道在tapestry中cycle、visit等对象是最核心的部分之二,其中cycle代表了当前被处理的请求,而visit对象则是用于存储application范围内的全局数据的对象。使用cycle对象的方法你将能得到application的任意页面实例(也就是当前将被渲染得页面或者是在form提交过程中被rewind的页面)、应用程序的引擎(engine)甚至是Servlet API提供的所有对象;而使用visit对象你则能在各个不同的页面间分享数据。

在tapestry中appcationServlet是整个程序中唯一的servlet,它充当着无状态的http协议世界和servlet api与有状态的pojo世界之间的网关。而在这里,状态时很重要的关键,为什么呢,因为传统的servlet程序中,每个页面的实例都是多线程的,能同时为n个request服务,因此不能在自身中保存状态,而tapestry应用中每个页面都是有状态的,因此就不能是无状态的。

原创粉丝点击