`
summerkai
  • 浏览: 94870 次
  • 性别: Icon_minigender_2
  • 来自: 农村
社区版块
存档分类
最新评论

下一代WEB开发模式Tapestry简介[转]

阅读更多

前言 

  由于internet技术的广泛流行,越来越多的程序开发模式正在从C/S向B/S转换,由于B/S模式具有瘦客户端的优点——无须安装客户端程序,这就大大减轻了软件升级的费用,所有的业务逻辑和数据库存储都放在服务端,从而提高了系统的可维护性。而且由于HTTP协议是一个开放式的标准,因此只要是支持HTTP协议的浏览器都可以运行,再结合目前的XML技术,可以方便地实现跨平台的分布式应用。

  但B/S架构有其天生的缺点:无状态性。这其实并不是B/S程序的错,而是由于B/S程序是建立在http协议的基础上的,因此程序无法维护各个客户端的状态,不过所幸的是这个问题现在已经解决了。

  现行的B/S开发的另一大缺陷是:代码和HTML页面揉和在一起了,对程序员和美工非常不利,而且对代码的维护简直是一场恶梦,这相信是许多Web开发者的一种体会。而C/S结构就没有这种缺陷,因为它是基于组件的,比如VB,你有多得数不清的ActiveX控件来完成一些复杂的界面。

  也许你看到这里,心里在盘算着:还是用C/S算了,省得这么多麻烦,但是一个不敢于尝试新技术的公司往往是一个被新技术淘汰的公司。

  为了解决上述问题,apache组织开发了一个基于JSP的MVC模式的实现:struts。它将WEB表现层分为model-view-controller几个部分,通过一个servlet来对web的流程进行控件,这与单纯的JSP或ASP相比确实进步了不少,因为利用struts能清楚地界定web的流程,而且不提倡使用<% …. %>语句,转而代之的是taglib技术。但它始终没有摆脱代码和HTML页面揉和的问题,而且它的原理对于JSP初学者来说比较复杂,taglib库不够丰富,而且taglib也不像组件那样能够继承。

  于是,新一代的WEB开发方法应运而生,它们最典型的就是开发方法是基于组件的,其中最具代表性的就是Tapestry。

  为什么要用Tapestry?

Tapestry现在已经属于Apache的Jakarta项目下了,你可以访问http://jakarta.apache.org/tapestry 来访问更多的信息。

  Tapestry是一个强有力、开放源码、基于Java的用于开发高端WEB应用的framework。它是JSP的一种替代方法,使用Tapestry,可以让你的页面看不到一句JSP代码,这使页面看起来非常干净。它可以用很少的代码来构造一个极端复杂的WEB应用。

  Tapestry使用了类似于传统C/S的开发方法:基于组件的开发。使用tapestry,你就可以得到以下好处:

  1、非常高的代码复用性,因为在tapestry中,任何事物都可以看作一个可复用的组件。 

  2、将JSP开发者从繁琐的JSP代码中解脱出来,取而代之的是真正面像对像方法,而不是URL解析。 

  3、对页面国际化的充分支持 

  4、精确地错误报告,可以将错误定位到源程序中的行,取代了JSP中那些莫名奇妙地错误提示。

  充分支持团队开发,美工人员和JAVA开发人员可以融洽地相处,互相都不依赖于对方。

  你也许会问:如果tapestry是基于组件的,那么它的组件是怎样构成的呢?它是由一个定义文件(以XML的格式)、一个HTML模板、一个JAVA类。Tapestry的组件可以组合在一起形成一个更大的组件或逻辑页面。

  Tapestry的工作原理如下:在web.xml文件中定义一个名为ApplicationServlet的servlet来进行处理所有的http请求,这和struts有点相似,不过它主要职责是负责引导整个tapestry核心,启动日志功能,读取配置文件,创建工作引擎来指派客户请求。ApplicationServlet主要是通过它的配置文件来进行自身管理的,你可以通过在web.xml中定义一个名为org.apache.tapestry.specification-path的初始参数来指定这个配置文件,当然如果你觉得这样麻烦,那你也可以不指定配置文件,但tapestry会自动寻找与此servlet同名的配置文件,例如在web.xml中的定义如下:

<servlet>
<servlet-name>Registration</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

  那么Tapestry会自动寻找一个名为Registration.application的配置文件,如果用户没有定义此文件,那么Tapestry将不能正常启动。

  为了便于理解,我举一个大家都熟知的例子:用户注册模块。首先生成一个注册页面,等待用户的输入,然后进行合法性检查,如果通过,就显示下一个页面。如下所示



  也许你会说,咦,这不是和JSP的表单差不多的吗?是的,虽然看上去差不多,但原理大不一样,由于它是基于组件的,所以Name、DOB、Address、City、State、Zip和Register按钮都是单独的组件,而不是普通的表单了。

  这时你肯定会说:唉,也不过如此嘛,就算是基于组件的思想设计出来的东西也不过尔尔,这几个文本框这么简单,何必费这么大的劲把它们包装成组件呢?呵呵,不知你注意到DOB这个文本框没有?它和其它几个有些不一样,它的右边多了一个小按钮,如果点击此按钮,出现的结果会让你瞠目结舌!

  酷吧?如果你曾经是一个JSP程序员,你的脑海里马上会闪过这样一个念头:一定是用javascript做的! 如果你这样想的话,那你就大错特错了,因为本人的javascript还没达到这种水平,如果我告诉你完成这样一个组件,只需要在配置文件中加入通俗易懂的几个xml元素的时候,你是否会觉得这真的很神奇呢?

  是的,这就是Tapestry的魅力所在,Tapestry主要设计者Howard Lewis Ship的目的就是最大限度地解放JSP程序员的劳动量,让他们有更多的时间花在客户的需求和程序的逻辑设计上,而不是花在和美工人员互相解决矛盾冲突上,你可能会急不可待的问:那我们是否可以动手试一试了呢?是的,当然可以,但在动手之前,我要先介绍一些关于tapestry的概念,并试着开发一个最简单的“hello,world”程序来让你熟悉一下它的配置。因为它是一个framework,如果你对它的结构不是很清楚的话,我想你肯定无法充分地利用它的。

  一个Tapestry组件一般称作JWC(Java Web Component),它能与其它JWC一起组合,生成实例,进行配置。比如你刚才看到的那个不可思议的组件就是一个DatePicker组件,刚才的那个页面是一个Page组件,Tapestry自带了很多的JWC组件,这些组件不仅仅只是GUI组件,还有可能是带控制功能的组件,比如foreach组件能够提供循环的功能,同时tapestry还提供了一个简单的方法来制作用户自定义的组件,所有的Tapestry应用的表示层都是由这些JWC构成的。

<script language="JavaScript" src="/netbei/x/view_a2.js" type="text/javascript">

分享到:
评论

相关推荐

    享受Tapestry为web开发带来的乐趣

    Tapestry为web开发带来了全新的视角,通过其组件化、面向对象的开发模式,极大简化了web应用的构建过程。对于那些希望提高开发效率、减少维护成本的Java开发者而言,Tapestry无疑是一个值得探索的选择。无论是初学者...

    Tapestry通用WEB框架

    此外,其开发模式下的实时反馈功能让调试变得更加高效。 11. **性能优化**:Tapestry通过缓存策略、延迟加载和最小化HTTP请求等方式提高应用性能。它还支持AOP(面向切面编程)来处理如安全检查、日志记录等横切...

    Tapestry5开发文档手册.doc

    Apache Tapestry 5 是一个基于Java的Web应用开发框架,其核心理念是组件化开发,通过构建组件来创建页面。Tapestry 5 提供了一系列的功能,包括输入验证、本地化/国际化、状态管理和URL映射,使得开发者能更高效地...

    tapestry4开发指南

    《Tapestry 4开发指南》是一本专为初学者设计的书籍,旨在帮助读者深入理解和熟练运用Tapestry 4这一强大的Java Web框架。Tapestry 4是一款开源的、基于组件的Web应用程序框架,它允许开发者用更加面向对象的方式来...

    Enjoy Web Dev With Tapestry

    ### 使用Tapestry享受Web开发 #### Tapestry简介 Tapestry是一款优秀的Java Web MVC(Model-View-Controller)框架,旨在简化Web应用程序的开发流程并提高开发效率。该框架通过将复杂的Web交互抽象成简单且优雅的...

    tapestry3开发指南,带tapestry3所有jar包

    **Tapestry 3 开发指南** Tapestry 3 是一个开源的Java Web应用程序框架,它在20世纪90年代...虽然现在更现代的版本如Tapestry 5和Tapestry 6已经发布,但Tapestry 3仍然是理解Web开发历史和技术演进的一个重要参考。

    Enjoying Web Development with tapestry源码

    《享受Web开发:深入探索Tapestry框架》一书提供了丰富的源码示例,帮助开发者深入理解Tapestry这一强大的Java Web开发框架。Tapestry是Apache软件基金会的一个开源项目,它提供了一种组件化、事件驱动的方式来进行...

    Tapestry开发指南

    本开发指南将深入探讨Tapestry的核心概念、工作原理以及如何利用它来构建高效、可维护的Web应用。 1. **Tapestry简介** Tapestry是一个基于MVC(Model-View-Controller)架构的框架,它通过组件化的方式,让开发者...

    Tapestry4开发指南

    最初,Tapestry3.1是在Hivemind框架下开发的,但并未从Hivemind中独立出来,最终演化为Tapestry4。这一决策让许多开发者对Hivemind持有保留态度,尤其是那些熟悉Spring框架的开发者。然而,随着时间的推移,Tapestry...

    基于Tapestry+Spring+Hibernate框架的Web应用

    它采用组件驱动的开发模式,允许开发者创建可重用的UI组件,从而提高代码的复用性和程序的健壮性。Tapestry通过其独特的组件模型,使得Web应用具有清晰的一致性结构,简化了复杂页面的构建过程,降低了维护成本。与...

    Enjoying Web Development with Tapestry下载

    标题中的“Enjoying Web Development with Tapestry”表明这是一个关于使用Tapestry框架进行Web开发的资源,而描述中提到的“博文链接”则暗示我们可能会在该博客文章中找到与Tapestry相关的教程或经验分享。...

    tapestry开发技术文档

    Jakarta Tapestry 是一款强大的Java Web应用程序框架,其设计目标在于简化Web开发,提高效率,并提供一致性和良好的错误处理机制。对于初学者来说,Tapestry可能会显得有些复杂,但深入学习后,你会发现它与其他框架...

    Tapestry开发

    Tapestry的设计理念是为了简化Web应用的开发过程,通过提供一系列强大的组件和内置的功能,帮助开发者更高效地完成任务。 **Tapestry的优势:** 1. **组件化编程:**Tapestry的核心思想之一就是组件化编程,这意味...

    Enjoy web with Tapestry

    《享受Web开发的乐趣:探索Tapestry框架》 在当今的互联网时代,Web开发已经成为一个不可或缺的领域。各种Web框架如雨后春笋般涌现,为开发者提供了丰富的选择。其中,Tapestry以其独特的魅力和强大的功能吸引着...

    Tapestry5实例(开发步骤)

    - 在 `src/main/webapp/WEB-INF` 目录下创建 `web.xml` 文件,配置Tapestry的初始化参数。 - 在 `src/main/java/org/mytapestry5/pages` 包下创建 `Test1.java` 类,实现页面逻辑。 ```java package org....

    Tapestry4开发指南.rar

    Tapestry是一个开源的Java框架,由Apache软件基金会维护,它提供了组件化、MVC模式以及声明式编程的特点,极大地简化了Web应用程序的开发流程。 在Tapestry 4中,开发者可以利用其组件系统构建动态的、数据驱动的...

Global site tag (gtag.js) - Google Analytics