摘 要:Web开发技术是Internet应用的一个重要方面,而JSP又是Web开发的最先进的技术,是当前Web开发人员的首选技术。但是由于JSP对Web开发人员要求较高,所以许多一般的Web开发人员还不能够使用这一项先进的技术。讨论基于模板和标签库的JSP网页自动生成工具的设计和实现,提出具体的设计思想和实现方法。
关键词:JSP;自动生成;Web开发;标签;标签库;模板
目录:
引言…………………………………………………………………..2
1系统设计目标和使用的主要技术……………………………….4
1.1设计目标………………………………………………………4
1.2主要技术………………………………………………………4
1.2.1模板技术………………………………………………….4
1.2.2标签库技术……………………………………………….4
2系统的组成和实现……………………………………………….6
2.1系统组成………………………………………………………6
2.2系统的实现……………………………………………………7
2.2.1模板库和标签库的实现………………………………….7
2.2.2系统开发环境…………………………………………….11
3结束语…………………………………………………………….11
引言
随着WWW(WorldWideWeb)的普及,动态网页技术也急速发展。从原来的CGI(CommonGatewayIn-terface)到ASP(ActiveServerPage),都从某种程度上满足了网页开发人员对动态网页开发技术的需求。但是不管是CGI还是ASP都存在一定的局限性,如CGI对服务器资源的耗费,ASP只能同MicrosoftIIS一起使用等,这些都限制了这些技术的使用范围,极大地阻碍了它们的推广。广大的页面开发人员都热切地盼望一种统一的页面开发技术,该技术应该具有的特点:①与操作平台无关,能够在任何Web或应用程序服务器上运行;②将应用程序逻辑和页面显示分离;③提供代码重用,简化开发基于Web的交互式应用程序的过程。
JSP(JavaServerPage)技术就是被设计用来满足这样的要求的。JSP是由SunMicroSystem公司于1999年6月推出的新的网页开发技术,它是基于JavaServ-let以及整个Java体系的Web开发技术,是Servlet2.1API的扩展。利用这一技术,可以建立先进、安全和跨平台的动态网站。
Java是未来的主流开发技术,具有很多优势。JSP则是Java在Internet/IntranetWeb上的重要应用技术,得到了广泛的支持和承认,它可以和各种Java技术完好地结合在一起,从而实现非常复杂的应用。
作为一种基于文本的、以显示为中心的开发技术,JSP提供了JavaServlet的所有好处。为了做到逻辑功能和显示功能分开,JSP已经可以和JavaBeans、EnterpriseJavaBeans(EJB)和Servlet一起工作。JSP的开发人员可以通过使用JavaBeans、EJB和Servlet来完成大部分与网站逻辑相关的工作,而仅仅把显示的工作交给JSP页面来完成。内容和显示逻辑分开的好处在于,更新页面外观的人员不必懂得Java代码,而更新Java类的人员也不必是设计网页的行家。这就可以用带Java类的JSP页面来定义Web模板,以建立一个具有相似外观的页面组成的网站。Java类完成数据提供,在模板中就没有Java代码,这意味着这些模板可以由一个HTML编写人员来维护。
JSP作为当前主流的网页开发技术,具有如下特点。
1)将内容的生成和显示进行分离:使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终的页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和JavaBeans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
2)强调可重用的组件:绝大多数JSP页面依赖于可重用的、跨平台的组件来完成应用程序所要求的更为复杂的处理。得益于Java的操作平台无关性,开发人员能够很方便共享和交流执行普通操作的组件,或者使得这些组件为更多的使用者所使用。基于组件的方法加速了总体的开发过程,极大地提高了项目整体开发的效率。
虽然JSP功能强大,但是它要求网页开发人员对Java要相当熟悉。而现在Java程序员还比较少,对一般的网页开发人员来说,JSP的语法还是比较难于掌握的。所以,就需要有一种网页开发工具,为一般的网页开发人员提供常用的JSP应用,让只懂得一般页面开发技术(HTML)的开发人员也能够使用JSP的强大功能。
1 系统设计目标和使用的主要技术
1.1 设计目标
本系统的设计目标是为只懂得HTML但完全不了解JSP的一般网页开发人员提供一个网页开发工具,使他们能够根据系统文档,通过标签使用JSP的常用功能,最后生成一个只包含静态HTML和JSP标签的动态JSP网页。
1.2 主要技术
本系统在设计时,主要考虑使用模板和JSP标签的技术来实现。
1.2.1 模板技术
模板技术被广泛地应用于各种开发和应用系统中。它预先生成一些常用的框架结构,使用户可以根据自己的需要方便地从模板库中选择模板,而不用自己重新去搭建,节省了用户的开发时间,方便了用户的使用。在本系统中,将页面按照功能类型进行分类,归纳出常用的页面类型,生成模板库。
1.2.2 标签库技术
在JSP中,动作是可以创造与访问程序语言对象和影响输出流的元素。JSP定义了六个标准的动作。除了这六个标准动作以外,用户可以定义自己的动作来完成特定的功能。这些动作被称为客户化动作,它们是可重用的程序模块。通过这些动作,程序员就可以在JSP页面中把页面的显示功能也部分地封装起来,使整个页面更加简洁和易于维护。在一个JSP页面中,这些客户化动作是通过客户化标签来调用的。而标签库(TagLibrary)就是客户化标签的集合。
JSP标签库是一种通过JavaBeans生成基于XML的脚本的方法。它是JSP的最大特点之一。通过标签库,能够无限制地扩展JSP应用,完成任何复杂的应用需求。
JSP标签库具有以下特点。
1)易于使用:JSP中的标签和一般的HTML标记外表上是完全一样的,使用起来和普通的HTML标记一样方便。
2)易于代码重用:标签库中的每一个标签都能完成一定的功能。一旦定义好了一个标签库,只需要把这个标签库包装成一个Jar文件,那么以后只要在别的系统中使用这个标签库就行了,而不用重新开发代码,极大地提高了系统开发效率,降低了开发成本。
3)易于代码维护:所有的应用逻辑都封装在标签处理器和JavaBeans中,所有的标签都集中在一个标签库中。如果需要更新代码或者需要修改一个网页上的功能,只需要修改相应的标签即可。通过这种统一维护方式,不用在每个网页上去作修改,极大地减少了维护的工作量,节约了维护成本。
4)易于系统扩充:如果需要向系统中添加新的功能,只需要定义一个新的标签来完成这一功能即可,无需对系统的其它方面作任何改动。标签库可以继承JSP规范各方面的特性。这样就可以无限制地扩展和增加JSP的功能,而不需要等待下一版本JSP的出现。
2 系统的组成和实现
2.1 系统组成
本系统主要由四个部分组成,见图1。
1)数据库连接部分:本系统支持常用的几个数据库,包括Oracle、Sybase、MSSQLServer、MySQL和DB2,根据用户选择的数据库类型和用户提供的数据库名称、用户名、密码使用JDBC同数据库相连。
2)系统基本表生成部分:和数据库连接以后,根据同数据库相连的用户名生成两个系统基本表TC-Tables和TC-Columns,TC-Tables表包含在该数据库中属于该用户的所有的表的英文名称、中文名称和一些属性,如是否可修改、是否可查询等;TC-Columns表包含在该数据库中属于该用户的所有的表的所有列的中英文名称和其它一些属性。如是否可显示、是否可查询等。这两个系统基本表在整个系统的开发过程中提供用户所使用数据库的基本信息。
3)模板选择和网页生成部分:该部分是系统的核心部分。它包含了两个子模块。
①模板选择部分:系统为用户提供模板选择界面,让用户根据需要从模板库中选择所要使用的模板。
②模板处理部分:根据用户选择的模板,系统调用指定的模板处理模块对这个模板进行处理。当处理程序遇到模板中的标签时,就为用户提供交互界面,让用户为指定的标签输入参数,并由系统验证用户输入的标签的有效性。最后由系统完成JSP页面的生成。
4)网页预览和修改部分:网页生成出来以后,系统为用户提供了一个网页预览窗口和代码查看修改窗口。通过这个预览窗口,用户可以预览一下生成出来的JSP页面的效果。如果用户对页面的静态方面的效果不太满意,用户可以通过代码查看修改窗口修改代码中的HTML代码。如果用户对页面的静态效果有进一步的要求,系统还为用户提供了一个调用DreamWeaver编辑器的接口,用户可以使用它来对生成出来的JSP页面的静态效果进行进一步的修改和完善。
2.2 系统的实现
2.2.1 模板库和标签库的实现
标签库的规划和设计在整个系统设计中至关重要,它关系到了代码重用的程度和系统运行的效率。它的规划应该遵循以下原则。
1)在标签中应该尽量少的包含静态的HTML。对于一般用户来说,标签是透明的。用户不能够查看和修改标签。如果在标签中包含了过多的静态HT-ML语句,将影响用户对页面的静态效果的修改和完善,限制标签的使用。
2)尽量提高代码的重用度。在对JSP应用进行分类是尽量把公用的JSP应用提取出来,形成标签。而不用在每个标签中都重复实现该应用。这样在以后要对该应用进行修改和完善时,只需对这一个标签进行修改即可,易于代码的维护。
3)方便用户的使用。在设计标签库时,应该充分考虑到用户的使用情况,使用户能够很容易和方便地理解和使用标签。
①标签库的定义:定义一个标签库,必须首先定义一个标签库描述文件(TLD)。这是一个基于XML的脚本文件,在这个文件中定义了XML的版本、所使用的编码、标签库的版本、所使用的JSP的版本、标签库的名称和这个库中所包含的所有的标签的定义和参数描述,包括标签的名称,标签所对应的Java类,标签的描述信息等。
②标签的实现:一个标签就是一个特殊的Java
类,这个类必须继承TagSupport类,这个类是在javax.servlet.jsp.tagext包中定义的。在标签类中,包含了这个标签的参数初始化方法(Set/Get)、标签的主体处理方法(Handler)以及供下一级标签调用的方法等。
③模板的实现:一个模板就是一个含有标签引用的JSP文件。为了在模板中引用所定义的标签,必须首先引入标签库。
<%@tagliburi=“tag.tld”prefix=“ctag”%>
其中uri指定标签库描述文件的路径;prefix指定引用标签时所使用的前缀。
在模板中引用指定的标签时,使用引入标签库时所指定的前缀,指定标签的名称;为标签的参数赋值。
2.2.2 系统开发环境
本系统主体程序开发使用的是Borland公司的JBuilder6.0,模板开发使用是Microsoft公司的Front-Page2000,标签库开发使用的是UltraEdit编辑器,JDK采用的是JDK1.4。系统测试环境是JRun3.0。
3 结束语
Java是未来开发语言的主流,而Java在Web上的主要应用JSP也必将成为未来Web开发的主流技术。本系统采用了JSP的最大特点之一的标签库,使一般的Web开发人员也能够方便地使用JSP强大的动态页面功能,开发出技术先进的JSP动态Web页面。由于本系统采用Java语言进行开发,所以可以在任何支持图形化界面的操作系统下运行,实现了完全的与平台无关。本系统易于扩充和完善。在以后可以考虑为用户提供接口,使用户可以自己扩充模板库和标签库,进一步增强系统的功能。
参考文献
[1] CayS.Horstmann,GaryCornell.Java2核心技术(CoreJava2)[M].北京:机械工业出版社.
[2] BruceEckel.Java编程思想(ThinkinginJava)[M].北京:机械工业出版社.
[3] JosephL.Weber.Java2编程详解(UsingJava2)[M].北京:电子工业出版社.
[4] Borland公司.BuildingApplicationswithJBuilder.