`
tigerli
  • 浏览: 101628 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tapestry的service

    博客分类:
  • JAVA
阅读更多

这是Tapestry框架的核心部分。Tapestry框架面向组件的开发方式,使得我们不再操心Servlet底层细节和URL中质询参数的结构。

Tapestry用于Servlet的底层对象

为了更好地理解Tapestryservice运作过程,我们首先需要熟悉一下Tapestry service中常用的核心对象。

1.       IRequestCycle对象

该对象用于控制一个单一的请求周期。一旦客户段浏览器发出请求,Tapestry将做以下处理。

通过IEngineService对象响应URL

决定响应页面;

释放所有资源。

在这个过程中,IRequestCycle对象还会处理:

异常操作;

加载页面模板;

跟踪页面属性的变化并储存页面状态;

缓存页面对象。

2IRageRecorder对象

       该对象用于观察一个页面及该页面Tapestry属性(页面属性和组件属性)的变化,在请求周期内储存页面状态,并在下一个请求周期到来之前,将页面已经发生变化的状态回复到初始值。

       通过实现IRageRecorder接口,可以自定义页面状态持久化策略,可以将页面状态存储内存,客户端cookies文件系统或数据库中。

3IPageSource对象

       通过页面规范从缓存池中加载页面对象,如果IPageSource对象在缓存池中找不到页面对象,或者加载的对象不可用,那么IPageLoader对象的实例就会创建页面对象的实例(包括页面所调用的组件)

4IPageLoader对象

       创建页面对象的实例。

5IEngine对象

       Tapestry应用程序的核心对象的生命周期与HttpSession相同,每个单一客户端拥有自己的engine对象。Engine对象用于向页面和组件提供Tapestry的核心service.

6.IEngineService对象

       Tapestry 的核心service通过IEngine对象相页面和组件提供Service.service的作用是构建URL编码以响应请求,或解析请求中包含的URL

7WebRequest对象

包含了当前请求的所有信息。这个对象本质上是对HttpServletRequest的封装。

8WebResponse对象

       控制客户端响应,并创建输出流。这个对象本质上是对HttpServiceResponse的封装。

9WebContext对象

       ServletContext的封装。

10WebSession对象

HttpSession的封装。

分享到:
评论
2 楼 tbest 2008-04-25  
借我收藏一下好吧!谢谢楼主!
1 楼 tbest 2008-04-25  
好文章!

相关推荐

    Tapestry API

    Tapestry的依赖注入(DI)机制通过`ServiceBinder`和`ServiceLocator`接口实现,允许开发者轻松获取和管理服务。DI减少了代码的耦合,提高了可测试性和可维护性。 6. **国际化与本地化** Tapestry API提供了`org....

    Tapestry + spring

    在Tapestry组件或服务中,你可以通过`@Inject`注解或其他方式(如ServiceBuilder或ServiceLocator)来引用由Spring管理的Bean。 通过这种方式,Tapestry和Spring的集成使得开发者可以充分利用Spring的强大功能,...

    Tapestry用户登录Demo(源代码+操作视频)

    2. **事件处理**:当用户提交登录表单时,Tapestry会触发一个事件,该事件通常被一个服务(如`AuthenticationService`)监听并处理。事件处理方法会验证用户输入的信息。 3. **服务注入**:Tapestry支持依赖注入,...

    Tapestry5.1+Spring2.5.6+Hibernate3.2.5写得简单CURD的程序

    例如,创建一个Service接口,定义CRUD操作的方法,然后创建其实现类,使用@Autowired注解注入SessionFactory,从而获取Session实例。 事务管理是关键一环,Spring的@Transactional注解可以标记在服务方法上,确保在...

    Tapestry开发指南0.9

    9. **服务注入(Service Injection)**:Tapestry通过依赖注入(Dependency Injection, DI)机制来管理服务,使得组件可以轻松地使用其他服务,如数据库连接、邮件服务等。 10. **性能优化**:Tapestry提供了多种...

    tapestry hibernate Spring应用及组件的使用

    此外,还可能包含了服务层(Service Layer)和DAO(Data Access Object)层的代码,它们分别负责业务逻辑和数据库操作。 总结一下,"tapestry hibernate Spring应用及组件的使用"这个例子展示了如何整合这三个强大...

    tapestry 5.3中文教程

    - **版本**: Eclipse Classic 3.7.2 (Indigo Service Release 2) - **下载地址**: [Eclipse Download Page](http://www.eclipse.org/downloads/) - **安装步骤**: - 下载 Eclipse 安装包。 - 解压缩到指定位置。 ...

    tapestry 实例(Workbench)

    `@Service`注解用于定义服务,而`@Inject`用于注入服务实例。 8. **数据库集成**:Tapestry可以与Hibernate等ORM框架集成,方便地进行数据库操作。通过`@Entity`注解和JPA标准,可以定义实体类并实现CRUD操作。 9....

    tapestry-ioc-5.0.3-src

    4. **注解驱动**:Tapestry IOC支持使用Java注解进行配置,如`@Inject`用于注入依赖,`@Service`用于定义服务,`@Component`用于组件定义等。这使得代码更清晰,减少了XML配置文件的需求。 5. **模块系统**:...

    tapestry4 深入浅出 水果店实例

    - **服务(Service)**: 提供应用程序的业务逻辑和数据访问功能。 2. **水果店实例的构建** - **模型(Model)**: 定义水果的属性,如名称、价格等,通常用Java类表示。 - **组件(Component)**: 创建用于展示...

    将Tapestry整合到Spring里去.doc

    整合的主要目标是保持Tapestry的用户界面层(User Interface Layer)不变,同时利用Spring接管服务层(Service Layer)的管理。Tapestry原本通过getEngine()->getService()的方式来获取服务,但在整合后,这些服务即...

    Developers Guide

    动作监听器(Action and Direct listeners)和直接服务(Direct service)、动作服务(Action service)则用于处理用户的操作请求,实现页面的动态响应。 七、设计Tapestry应用 设计一个Tapestry应用需要考虑多个...

    TSH练习例子

    - **Spring与Tapestry集成**:Spring用于管理Service层,而Tapestry作为前端框架,两者结合实现前后端分离,提高开发效率。 ### 结论 综上所述,该文档深入探讨了在基于Hibernate、Spring和Tapestry的项目中,如何...

    integral-canary:您的Tapestry应用程序的简单“矿工金丝雀”

    ∫一体式金丝雀 ... 没有绑定到ServiceBinder默认配置,因此您必须主动提供一个。 最简单的方法是简单的构建器方法: @ImportModule ({ CanaryModule . class }) public class AppModule { publi

    DHT算法的实现,学习chord好材料

    `Tapestry__ A Resilient Global-Scale Overlay for Service Deployment JSAC03.pdf`是一个学术论文,可能深入讨论了Tapestry的详细设计、实验结果以及与Chord等其他DHT的比较。论文通常会涵盖理论背景、系统架构、...

    使用AppFuse快速构建J2EE应用.doc

    AppFuse还包括了AppGen工具,用于自动生成DAO类、Service类和其他代码。如果你不希望AppGen生成这些代码,可以使用`install`目标;如果需要生成全部代码,应选择`install-detailed`目标,这两个目标都在extras/...

    编程语言JavaWeb开发框架.pdf

    Spring MVC将Web层解耦为组件,如控制器(Controller)、服务(Service)、数据访问对象(DAO)等,使得整个应用更加模块化。Spring MVC还支持与Spring框架的其他部分无缝集成,如事务管理和安全性。 综上所述,本...

    ejb3.0写的登陆应用

    - **消息驱动Bean(Message-Driven Beans)**:用于处理JMS(Java Message Service)消息,但在这个登录应用中可能未涉及。 2. **注解驱动的编程**: - `@Stateless`:表示无状态会话Bean,不保存任何客户端特定...

    AppFuse学习笔记

    - `installAppGen` 和 `install-detailedAppGen` 目标与 AppGen 工具相关,分别用于自动生成部分或全部代码,如 DAO 和 Service 类。 1.2 示例应用 该示例应用展示了如何使用 AppFuse 实现员工信息的CRUD操作。它...

Global site tag (gtag.js) - Google Analytics