1. 什么是面向组件开发方式
Tapestry最大的特点是其颠覆性的开发方式。所谓颠覆,是指Tapestry的开发方式不光与传统的开发方式截然不同,而且还是在逐渐取代传统的开发方式。在web表现层框架中有两大开发方式,一种是传统的面向元素开发方式,这种开发方式也是最早出现的开发方式。绝大多数框架都是使用面向元素开发方式,比如 Structs,WebWork,SpringMVC等。在面向组件开发方式出现的原因正是为了弥补面向元素开发方式中种种不足之处。因此,我们可以认为面向组件的开发方式比面向元素的开发方式更加先进。目前,面向组件的Web表现层框架有三种:Tapestry,JSF,Wicket。
2.传统的面向元素开发方式
在Java语言中,我们都是使用Java Servlet API来创建Web应用程序。Java Servlet API是SUN公司制定的标准。Servlet是一个Java类,它的作用是接收客户端发送过来的请求,然后返回一个响应,最后通过客户端浏览器显示出一个HTML页面。Java Servlet API为Servlet定义了一些基础类,例如 HttpServletRequest,该对象装载了客户端发送过来的请求,并允许Servlet获取URL中携带的质询参数。
Servlet在Servlet容器中运行,Servlet容器是HTTP协议与Java Servlet API 之间的桥梁。Servlet容器负责创建Servlet实例并对其进行初始化。很多软件都提供了Servlet容器,其中有些软件的全部功能只是为了提供Servlet容器,例如,Apache Tomcat,Resin,Jetty等,而在有些软件中,Servlet容器可能只是一个庞大应用程序服务器中的一部分,例如,BEA WebLogic,IBM WebSphere 或开源的JBoss应用程序服务器。
Servlet容器根据URL来选择合适的Servlet响应请求,一个简单的Web应用程序可能包含许多Servlet。那么在Web应用程序的部署描述文件(应用程序中的一个XML文件通常命名为web.xml,放置在应用程序中的WEB/WEB-INF/目录下)中,我们就必须对每一个Servlet的名称和Java类全路经进行配置,并且配置URL和Servlet的映射关系。例如:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.wanjin.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
那么当客户端请求URL中包含“/servlet/MyServlet”字符串的时候,Servlet容器将会查找名称为“myServlet”的Servlet,然后根据名称为“myServlet”的Servlet的Java类群路径“com.wanjin.MyServlet”创建Servlet实例,并对其进行初始化。MyServlet类在接受到客户端返回相应。相应的结果以一个HTML,页面的形式在客户端浏览器出现,该叶面向是勒我们希望客户端得到的应用程序业务信息。
整个过程是很简单的。但是当我们面对一个庞大Web应用程序的时候,该用程序就可能包含大量的Servlet。这就意味着我们必须定义大量的URL与Servlet映射关系。那么,应用程序的URL结构将变得越来越复杂,也越来越容易发生混淆。于是,在应用程序开发阶段,我们不得不将绝大部分精力用于处理数量众多且易于混淆的URL。
在传统的开放方式中,例如,JavaServer Page (JSP),SpringMVC,Struts,WebWork中,我们必须关注叶面中每一个<a>元素的href属性,以及form元素的action属性,因为这些属性装载了向服务器发送请求的URL.大多数情况下,我们对这些HTML元素属性的关注甚至超过了我们对应用程序业务逻辑的关注。我们将这种开发方式称为面向元素(标签)开发方式。
分享到:
相关推荐
Tapestry的学习笔记,全都是从网上整理的
强大的tapestry框架的学习入门资料,详细介绍了tapestry的常用开发文档。
Tapestry~需要学习资料的进来看看 纯英文原版
该包包含: Tapestry5最新中文教程.doc tapestry.pdf tapestry开发流程.docx Tapestry开发指南0.8.pdf tapestry用户手册.pdf
很不错的tapestry入门手册,安装教程学习后,基本可以熟练使用tapestry,极大提示开发效率。史上最全面Tapestry学习教程,Tapestry学习资料,适合入门
本人搜集的tapestry学习资料,压缩后25M左右。其中很多资料很难得。应该说对tapestry开发者有很大帮助。
是一本由多本Tapestry资料整合而成。包括一些Tapestry的实例。
Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...
使读者在学习如何使用Tapestry框架技术的同时,还能够获得在J2EE Web应用程序中应用Tapestry框架的先进经验。本书详细介绍了Hivemind框架的原理与应用,使读者不但可以通过Hivemind来重构Tapes 资源太大,传百度网盘...
Tapestry5.0.16文档和大家一起学习
Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...
Tapestry 4 官方文档中文版本,现在中文资料比较少,和大家共享一下
tapestry 实例tapestry 实例tapestry 实例tapestry 实例
使读者在学习如何使用Tapestry框架技术的同时,还能够获得在J2EE Web应用程序中应用Tapestry框架的先进经验。, 本书详细介绍了Hivemind框架的原理与应用,使读者不但可以通过Hivemind来重构Tapestry的官方实现,还...
tapestry3开发指南,带tapestry3所有jar包
Tapestry4开发指南
tapestry5.2.6 最新jar包,Tapestry框架是一个位于java servlet容器和Tapestry应用程序之间的层
tapestry技术 Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得...
包含: tapestry 的源代码, tapestry集成spring2.0 tapestry快速启动 tapestry upload tapestry hibernate tapestry annotations