欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

取代JSP的新技术-tapestry[转自java-cn]

程序员文章站 2022-03-10 15:41:44
在如今的web开发中,基于java的应用越来越多。在这其中,servlet又扮演着十分重要的角色。本系列文章就是要介绍一些辅助进行servlet开发的工具,让大家进行开发时,有多种...

在如今的web开发中,基于java的应用越来越多。在这其中,servlet又扮演着十分重要的角色。本系列文章就是要介绍一些辅助进行servlet开发的工具,让大家进行开发时,有多种技术可供选择。 
servlet技术无疑是一种优秀的技术,java服务器端技术大都基于servlet技术。但这种技术也有其自身的不足,例如:表示层(html代码)与代码混在一起,可重用性不高。sun于是提出了(sun企业级应用的首选)技术,jsp(sun企业级应用的首选)也是基于servlet的一种技术,使用它你可以在html中嵌入java代码。jsp(sun企业级应用的首选)在servlet的基础上迈进了一大步,但单纯的jsp(sun企业级应用的首选)也有上面提到的servlet的缺点。不过利用jsp(sun企业级应用的首选)+javabean+taglib这种开发模式可以解决上面提到的缺点。但jsp(sun企业级应用的首选)本身还有其它一些不足,具体参看the problems with jsp(sun企业级应用的首选)这篇文章。于是人们便开发了其它一些基于servlet的技术。我们首先介绍一下tapestry。 

简介 

tapestry是一个开源的基于servlet的应用程序框架,它使用对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是java web component。tapestry使得java代码与html完全分离,利用这个框架开发大型应用变得轻而易举。并且开发的应用很容易维护和升级。tapestry支持本地化,其错误报告也很详细。tapestry主要利用javabean和xml(标准化越来越近了)技术进行开发。 

第一个应用程序 

在介绍第一个应用之前,先介绍一下tapestry的安装。从sourceforge下载其最新版,解压后,将lib目录下的jar文件放到classpath中,将其中的war文件放到tomcat(一个很好用的jsp运行平台)的webapp目录下。然后就可以通过访问其tutorial应用。 
在tapestry中一个应用程序有以下几部分组成,我们以其自身带的helloworld程序为例介绍: 

servlet: 
这是一个应用的主体部分:servlet类,这个类必须是applicationservlet的子类,并且必须实现getapplicationspecificationpath()方法。示例如下: 


import com.primix.tapestry.*; 
public class helloworldservlet extends applicationservlet 

protected string getapplicationspecificationpath() 

return "/tutorial/hello/helloworld.application"; 




/tutorial/hello/helloworld.application是一个应用的说明文件。 
application specification: 
其实就是描述这个应用的一个xml(标准化越来越近了)文件,在这个应用中有许多参数需要设置,engine-class将在下面介绍,page中的name属性指定html文件名,specification-path指定对这个页面的说明文件。在一个应用中可以有很多个page,但必须有一个page的name为"home",因为当访问你的应用时,首先显示的就是这个page。 

<?xml(标准化越来越近了) version="1.0" encoding="utf-8"?> 
<!doctype application public "-//howard ship//tapestry specification 1.1//en" "https://tapestry.sf.net/dtd/tapestry_1_1.dtd"> 
<application name="hello world tutorial" engine-class="com.primix.tapestry.engine.simpleengine"> 
<page name="home" specification-path="/tutorial/hello/home.jwc"/> 
</application> 


application engine: 

当客户连接到tapestry应用时,tapestry将会创建一个engine对象(类似于session)。通常我们程序中的application engine 一般是simpleengine类的一个实例,当然这个类的子类也可以。 

page specification: 
跟应用说明相似,页说明也是一个xml(标准化越来越近了)描述文件: