您的位置:软件 > 开发者网络 > 开发工具 > Java > 正文
下一代WEB开发模式Tapestry简介
[文章信息]
作者:罗小虎编译
时间:2003-11-24
出处:yesky
责任编辑:方舟
[文章导读]
Tapestry是一个强有力的基于Java的用于开发高端WEB应用的规范,是JSP的替身
advertisement
热点推荐
· 天极网软件频道改版调查
· 10.28软件精选 找乐还是赌钱
· 中国游戏业——被人们忽视的黑暗
· Windows 2000密码破解不完全指南
· 解决XP SP2带来的网络故障(上)
[正文]

1 2 3 4  下一页

天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。(首月免费)

  前言

  由于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构成的。


1 2 3 4  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 学习J2SE过程中的30个基本概念
  • Sun向两公司提供Java服务器技术授权
  • Java多线程及其同步实现原理
  • Java集合构架研究之一
  • Java开发中多线程同步技巧
  • JDK1.4非阻塞套接字API概述
  • Java Applet动画设计
  • 生产-消费模式的XML解析
  • 用Java多媒体框架实现自播放
  • Java技巧:列表排序
  • Java多国语言问题解决方案
  • Java中使用XML创建EMAIL模板
  • 百万像素手机大展台
  • K7终极配置 时尚游戏的追求
  • 天极游戏专访锦天科技总经理贾可
  • 10.28软件精选 找乐还是赌钱
  • 浩鑫:争夺电子竞技“F1”桂冠
  • 体验诺顿安全特警2005版的最新特色
  • NGC《生化危机4》神秘男子出现
  • VIA作客天极 最新Roadmap曝光
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索