理解Tapestry引擎
Tapestry的核心是一个引擎对象,这个对象支撑和组织了应用程序的所有层面。引擎将所有的子系统绑定在一起形成了Tapestry应用程序。引擎主要涉及对服务器端状态的管理。引擎管理Infrastructure对象,而Infrastructure对象储存了大多数应用程序范围的状态(Infrastructure 对象中存放了多大39种Tapestry底层对象)。引擎同时也是管理持久页面属性的重要组成部分,当请求转移的时候,持久化页面属性允许页面拥有独立的内部状态。
每一个Tapestry应用程序都拥有一个独立的Servlet,用于连接Servlet容器和应用程序engine对象。应用程序servlet是ApplicationServlet类的一个实例。
Servlet的主要工作是找到并创建应用程序引擎对象的实例,引擎对象被储存在HttpSession中。然后代理所有进程应用程序引擎对象发出请求,引擎对象作为Tapestryservice的代理完成真正的请求响应。
引擎对象是应用程序中枢对象,它掌管着应用程序中的所有功能。它管理各种资源,如页面加载器,页面记录器,以及在请求周期内,为各种页面和组件提供服务。
引擎对象的一个重要工作是指定Tapestry service响应请求,这些service通常被用来创建URL和响应请求。应用程序引擎对象创建和管理请求周期,并捕捉和报道异常。
应用程序引擎对象提供页面记录器给请求周期使用。通过这种方式,它制定了整个应用程序的持久化策略。
在默认情况下,Tapestry使用org.apache.tapestry.engine.BaseEngine类作为默认的引擎对象。如果我们需要实现自己定义的引擎对象,可以创建一个子类继承与BaseEngine类,并在应用程序规范文件中进行配置。
<application name=”MyTapestry4” engine-class=”com.tapestry4.engine.MyEngine”>
引擎主要是通过service()方法,这个方法处理传递进来的请求,并将处理结果打印到客户端浏览器。
在传统的Servlet应用程序中,一个很大的挑战就是对应用程序产生和解析URLs的管理非常复杂。Tapestry通过引擎服务来处理这个问题。引擎服务实际上是请求与组件之间的真实纽带。
传统应用程序的URL有什么问题?
应用程序URLs表现了应用程序中的各种操作。最普遍的方式就是每个操作都拥有一个独立的Servlet,并使用质询参数获取请求中的客户端数据。
对于小型的应用程序,或者大型应用程序的初期阶段,对URL和质询参数的管理并不显得非常复杂,顶多会受到一些命名空间的限制。但是,随着应用程序规模的增大和改变就会产生一个很大的风险。因为JSP与Servlet之间只有非常细小的联系,JSP构造和表现应用程序URL,而Servlet解析那些相同的URL。如同我们前面讨论的那样,JSP与Servlet之间的弱绑定,如果Servlet的映射改变,则每个引用Servlet的JSP都必须被手工检查或修改,以确保产生新的正确的应用程序URL。同样,任何质询的改变将会产生连带影响。
分享到:
相关推荐
"tapestry学习入门资料" Tapestry 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...
在这个“Tapestry学习文档”中,我们可以深入理解这个框架的核心概念和技术。 1. **组件化编程**: Tapestry的核心是组件,它将UI元素(如按钮、表单、列表等)封装为独立的、可重用的单元。每个组件有自己的状态...
【Tapestry笔记】 Tapestry是一个基于Java的Web应用框架,它采用了面向组件的开发方式,这使得它与其他如Structs、WebWork、SpringMVC等采用传统面向元素开发方式的框架有所不同。面向组件的开发模式旨在克服面向...
本压缩包包含了一系列的学习资源,帮助开发者深入理解和掌握Tapestry 4和5的关键概念和技术。 1. **Tapestry5最新中文教程.doc**: 这份文档可能是针对Tapestry 5的最新中文教程,旨在为初学者提供一个易懂的入门...
本压缩包包含了丰富的Tapestry学习资料,总计约25M,涵盖了各种教程、教材和实践案例,对于想要深入理解和掌握Tapestry的开发者来说,是一份非常宝贵的资源。 1. **Tapestry基础** Tapestry基于组件模型,每个网页...
10. **学习资源**: 虽然Tapestry 4的中文文档较少,但提供的《Tapestry4 用户指南》和《Tapestry4 快速启动》是宝贵的参考资料。它们将帮助初学者理解Tapestry的基本概念、组件使用、事件处理等方面的知识。 总的...
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型...通过学习"Tapestry简单入门.rar"中的文档,你将能够掌握这个框架的基础知识,为进一步深入学习和实践打下坚实基础。
是一本由多本Tapestry资料整合而成。包括一些Tapestry的实例。
10. **Tapestry-internal-test**: 内部测试套件,用于验证Tapestry框架的内部工作原理和功能,这对于理解Tapestry的实现机制非常有帮助。 通过研究这些源码和API,开发者不仅可以掌握Tapestry的基本用法,还能深入...
本文档旨在提供一个全面且易于理解的 Tapestry 学习指南,帮助初学者快速上手并掌握 Tapestry 5.1 的核心功能。 #### 第一章:搭建 Tapestry 5.1 开发环境 ##### 1.1 安装 JDK - **原因**:Tapestry 5.1 使用了 ...
Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...
Tapestry 3的开发指南是学习和理解这一早期版本框架的关键资源,而提供的jar包则是实际开发中的必要依赖。 **一、Tapestry 3 的核心概念** 1. **组件**:Tapestry 3的核心是组件,它将HTML元素与Java代码结合,...
### Tapestry4开发指南 #### 一、Tapestry4概览 Tapestry4作为一款先进的Web应用框架,由Howard Lewis Ship所创造,旨在提供一种更为高效、灵活的Web应用构建方式。与前代Tapestry3相比,Tapestry4在设计上有了...
《Tapestry学习资料》是一份综合性的资源集合,涵盖了Tapestry框架的三个主要版本:Tapestry 3、4和5。这份资料旨在帮助开发者深入理解和掌握Tapestry框架,提升Web应用开发的效率和质量。 Tapestry是由Apache软件...
Tapestry5.0.16文档和大家一起学习
**Tapestry 实例详解** Tapestry 是一个开源的Java Web 应用程序框架,由Apache软件基金会维护。...通过深入学习和实践Tapestry,开发者可以创建出高效、可扩展的Web应用程序,享受到组件化开发带来的诸多益处。
10. **错误处理与调试**:Tapestry的错误处理机制可以帮助开发者快速定位问题,提供详细的错误报告和堆栈跟踪。此外,其开发模式下的实时反馈功能让调试变得更加高效。 11. **性能优化**:Tapestry通过缓存策略、...
Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...
Apache Tapestry 5 是一个基于Java的Web应用开发框架,其设计目的是为了简化Web应用程序的构建,提供组件化的页面构建、输入验证...通过学习和实践Tapestry 5,开发者能够更好地理解和掌握现代Web应用开发的最佳实践。