周安峻,黄 方,陈 涛
(重庆交通大学,重庆 400074)
利用ASP动态实现网站设计与生成
周安峻,黄 方,陈 涛
(重庆交通大学,重庆 400074)
文章通过ASP与 SQL进行动态网站的设计与生成.它为用户提供友好的设计界面,把用户的交互式的描述信息分类后存入后台数据库,在需要时通过对数据库中的数据进行选取,使用预先定义的网页模板,从而生成整个网站的HT ML代码文件.
WAGS;数据对象;动态生成
进入新世纪,商业和科技的发展让网络走向普及,企业和个人在 Internet上拥有自己的网站来发布信息是必然的趋势.然而网站的开发和维护是一个专业且耗时的过程,普通用户尚不能很好地解决网站开发周期长、费用高等问题.本文中介绍一种以 ASP与 SQL Server为基础的网站自动生成系统 (Web Auto-Generation System,以下简称WAGS).WAGS的使用者不需要具备任何 HT ML语言、VBScript和 JavaScript脚本语言的知识,就能轻松完成网站的开发.WAGS是运行于服务器端的网站应用程序,通过已有的网页模板格式,它将用户所掌握的信息通过一个操作简单的界面加入数据库,再发布到网站上.此WAGS可遵照用户要求,自动生成网页,并根据信息的不同分类,建立类别到专题,专题再到具体的网页的二级结构体系之间的链接关联网页,再加上网站的首页,形成一个完整的网站.在生成一个网站后,用户还可对网站的信息进行更新和维护,对信息分类结构进行调整,使网站能随时进行更新.
ASP(MicrosoftActive Server Pages)提供服务器端脚本环境 (Web Server Scripting Environment),通过ASP可创建、运行交互式高性能的Web Server应用程序.当脚本运行在服务器端而不是客户端时,Web Server处理所有的工作,包括生成 HT ML页并传送给客户端的浏览器.客户端的 Browser请求一个服务器端的.asp文件时 (HTTP:Request),Web Server调用 ASP,ASP处理客户所请求的.asp文件中的命令,然后将处理结果返回给客户 (HTTP:Response).ASP的另一个强大作用就是数据库驱动,若执行中 ASP程序使用了ADO(ActiveX Data Object)对象,则Web服务器会根据 ADO对象所设的子参数去启动对应的 ODBC驱动程序,ASP程序可直接利用ADO对象来访问数据库,或通过ADO对象发送 SQL指令,对现有数据库进行存取.
WAGS与普通的网页制作工具区别在于,它不仅能够编辑单个页面,而且还把网页上的要素 (图片和文字)经编码转换后放入后台数据库.它还根据网页的内容不同进行逻辑上的分类.WAGS生成的网站是由不同的类别组成,每一个类别下面又由不同的专题组成,在每一个具体的主题下面是显示不同内容的网页.对应于网站的两级结构体系,WAGS由类别管理、专题管理、网站自动生成和用户管理等四个模块构成.其中网站自动生成模块又细分为信息输入子模块、网站页面编辑子模块、网页生成子模块.[1]模块结构如图1:
(1)类别管理模块.类别是整个网站的一级分类.一个类别下面可以有多个专题.该模块的功能为:增加、修改和删除类别信息;更改类别的中文名称及其相应目录名;在服务器的物理存储空间上创建或删除与类别相对应的一级目录.它使得用户可随时根据需要增加、修改或删除各个类别.这对于网站上信息的分类调整以及网站设计规划中第二步 (设定专题)的实现具有很大的作用,可以大大地减少二次开发的工作量.
(2)专题管理模块.专题是建立在类别下的信息的二级分类,在同一个类别下可以根据需要创建不同的专题,从而对信息进一步细化.该模块的功能是根据需要增加、修改、删除或移动专题.这对于网站上信息的分类调整也具有很大的作用.
(3)网站自动生成模块.
a)信息输入子模块:该模块实现网站内容的更新与维护,提供在后台输入、修改和删除各信息类别及专题中的具体信息的功能,所得的数据按其所属类别和专题进行一定的编码转换后存入后台数据库.
b)网站页面编辑子模块:该子模块可以通过向导式的编辑方式轻松实现网站页面的定制功能,可将页面上的一些固定内容,如广告条、路径栏和边框等让用户选择其风格,从而保证网站设计风格的统一,同时也可以大大减轻工作量.
c)网页自动生成子模块:该子模块的功能主要有两个:一是按照作者事先定义的模板,对照数据库中的数据,生成包含 HT ML代码的文件;二是生成相应类别下的链接网页 (链接网页是网页上含有导向其他各个网页的超链的网页),或是向已有的链接网页上添加超链.
(4)WAGS用户管理模块.WAGS根据用户的权限把用户分为管理员与一般操作员.一般操作员只可进入后台管理界面,进行栏目信息管理.管理员具有管理WAGS用户的功能,除了拥有一般操作员的所有权限外,他可以增加、删除系统管理员和操作员的帐号,调用类别管理模块和专题管理模块对网站的结构进行调整.该模块的功能是控制不同用户对本生成器的使用权限:添加、删除用户和修改用户权限.[2]
网页是信息的载体.网页上的元素错综复杂,有文字图片和图标等资源.要想把它们统一地存放进后台数据库,就必须对各种元素进行一定的编码转换.本WAGS的信息输入子模块完成这部分的功能.对于文字性的内容直接过滤去特殊符号 (如转义字符和引号)后存入数据库.对于图片和背景等资源,由于无法直接放入后台数据库中,则采取在数据库中存放其链接的方法.这个链接可以指向本地机器的文件夹,也可以指向 Internet上任意一台具有公共 IP的计算机的共享文件夹中的内容.当从数据库中取出数据生成网页时,根据这个链接就可以准确定位找到用户所需的资源.此外,除了对网页上的物理元素进行数据库存取之外,对于那些元素之间的关系同样也进行编码后放入后台数据库.这种编码格式由WAGS本身预先定义,WAGS执行时自动完成编码转换,对于用户来说是透明的.[3]
用户通过操作界面交互式的输入网页信息 (标题、正文、图片、位置等)后,就可以预览即将生成的网页.用户也可以在网站管理窗口相应的类别专题下看到这个网页的基本信息.当用户提交后,WAGS就调用网页自动生成子模块,从数据库中读取网页上的信息数据.因为每一个网页属于不同类别下的专题,所以还必须从数据库中类别和专题的对应关系中获取这个网页所属的类别的名字和专题的名字.同时,还需要对先前编码后放入数据库的数据作解码的操作,即根据编码数据含义的不同执行不同的操作.例如:网页上有无插图这一信息在数据库中以 0或 1来表示.在生成 HT ML代码时,根据数据库中的数据是 0或 1来决定是否调用显示图片的 HT ML标签.当所有的网页都从数据库中取出后,WAGS便创建服务器端的FSO(File System Object),根据已有的网页模板格式把所有数据以 HT ML代码的格式逐行写入即将生成的网页文件.与此同时,WAGS会在其上级的链接网页上添加指向这个页面的超链,使得用户可以通过浏览器从外部访问这个页面.
为了方便管理员对整个网站进行全局管理,应把网站的体系结构以一种直观的方式显示.本WAGS采用的是目录树型结构形式,同时结合动态生成技术来实现.所谓动态生成目录树型结构是指目录树节点的内容不是事先定好的,而是从数据库中存储不同信息的多个表中根据主键和外键的对应关系挖掘网站结构的特征信息,通过条件查询和选取等数据库操作,按照二级体系结构的框架显示在相应的节点位置.这样,无论网站的结构如何变化,目录树型结构总是能够反映出最新的网站结构体系.动态生成目录树型结构的实现综合运用了 ADO对象模型、JavaScript脚本和 HT ML语言,具体方法为:
(1)建立和数据库之间的连接 (用ADO模型的 Connection对象),查询类别表后获得 Record set对象,为把数据库中的特定内容显示在父菜单和子菜单相应的位置上提供范围集合. <%set con=server.createobject(″ADODB.Connection″)
本WAGS设计了网页模板的扩充接口,可以根据需要,向WAGS添加风格各异的网页模板.为此,数据库中对于每个网页模板根据其对于模板上元素的划分生成具有相对应字段的模板定义表 (SampleT-able)来存取模板的信息.在记录网页生成信息的网页生成表(PageGenerateTable)里,添加上一个字段来存放这个网页所调用的模板的 ID号、根据这个唯一的 ID号可以在模板信息表 (SampleInfoTable)里找到这个模板定义表的名称,从而调用相应的模板定义表中的信息生成网页.其中模板 ID号字段为模板信息表的主键 (Pr imaryKey)和网页生成表的外键 (ForeignKey).当WAGS需要添加模板时,只需要对模板的元素进行定义并在数据库中添加相应的模板定义表,同时在模板信息表中生成一个新的模板 ID号,添加一条对应于该 ID号,包含新建模板定义表名称的新记录.网站页面编辑子模块在执行时,会自动读取模板信息表中的内容,列出所有的可供用户调用的模板 (包括新添加的模板).如果用户在生成网页时调用某个模板,WAGS会在数据库中根据模板 ID号找到相应的信息来生成网页.
WAGS有机地集成了一系列网站开发要素,为用户提供友好的开发环境,使用户能以交互的方式描述需求后直接得到整个网站的代码.WAGS采用 ASP加 SQLServer的开发模型.ASP优于传统的 CGI程序,它运行效率高,程序编制灵活,安全性与保密性也高于传统的脚本语言.利用 ASP加 SQLServer开发的WAGS,自动生成整个网站的 HT ML代码文件,并且有层次地把他们组织起来,用户亦可根据需要对网站进行局部微调或对网页进行独立编辑,从而满足用户特殊的需要.WAGS能很好地解决网站开发效率低下的问题,为非专业设计人员创建网站提供了方便、灵活、高效的工具.
[1]莫少东,罗伟其.构造Web信息发布系统模型[J].计算机工程,2001,(5):21-23.
[2]StephenWalter.ActiveServerPages2.0 Unleashed[M].北京:北京希望电子出版社,2007.7-9.
[3]MSDNLibrary.JavaScript Description[DB/OL]. (2006-03-11)[2007-05-02].http://msdn.microsoft.com/library,Microsoft.
[4]Beznosov.K.Experience report:Design and implementation of a component-based protection architecture for ASP.NET web services.Component-Based Software Engineering[M].Proceedings.Berlin.2005.116-127.
[5]FawazA.Masoud,Dana H.Halabi,Deema H.Halabi.asp.net frameworks and JSP frameworks in model view controller implementation.IEEE Technology[M].NewYork,2006.3593-3598.
[6]AgnesBogairdi-Meszoly,TihamerLevendovszky,Hassan Charaf.Performance Factors inASP.NETWebApplicationswithLimited QueueModel. INES International Conference on Intelligent Engineering Systems.IEEE Technology[M].NewYork,2006.253-257.
[责任编辑 牛怀岗]
Website Design and Creation by ASP-Dynamic
ZHOU An-jun,HUANG Fang,CHEN Tao
(Chongqing JiaotongUniversity,Chongqing 400074,China)
This paper is about the design and creation of the dynamic website byASP and SQL technology,which provides the user-friendly designing interface,classifies the interactive description data of the user and saves them in the backend database.When building a website,the user can select the data from the database and use the presetweb page template to generate the HT ML code of the whole website.
WAGS;data objects;dynamic creation
TP393.09
A
1009—5128(2010)05—0044—05
2010—03—09
周安峻 (1971—),男,重庆人,重庆交通大学副教授,工学硕士.研究方向:计算机程序设计、计算机网络技术;黄方 (1967—),女,重庆人,重庆交通大学副教授;陈涛 (1974— ),男,四川巴中人,重庆交通大学副教授.