【VB开源代码栏目提醒】:本文主要为网学会员提供“基于cgi/perl的web mis - 计算机教材”,希望对需要基于cgi/perl的web mis - 计算机教材网友有所帮助,学习一下!
1 基于CGI/Perl的WebMIS朱立谷 刘玲 赵卫国 宋小波 梁哲炜 湘潭大学信息工程学院湖南省湘潭市411105 摘要本文了一个基于Web三层结构的房屋租赁信息系统。
采用了Linux作为操作系统Apache和MySQL作为Web服务器和数据库服务器采用CGI/Perl编程技术实现了动态网页和数据访问。
该方法适合于小型企业建立经济实用的WebMIS系统。
关键词WebMISCGI/PerlApacheMySQLLinux Abstract: In this paper A WebMIS based on the three-layer architecture is designed and realized. Linux is used as operating system Apache as Web Server and MySQL as database Server. Dynamic Web Page and database access are realized by CGI/Perl programming. This solution is useful for small enterprises because it is very economic. KeyWords: WebMISCGI/PerlApacheMySQLLinux 中图分类号TP391 文献标识码A 1 引言 随着Internet的普及和Internet/Intranet技术的不断发展 使得以Web技术为核心的浏览器/Web服务器/数据库服务器三层体系结构的应用成为企业管理信息系统开发技术的主流1。
Intranet终端系统已经统一为Web浏览程序的单一平台。
Intranet系统里的文件即应用程序处理结果都能通过Web浏览程序显示出来。
用户通过运行Web浏览程序各种处理任务都可以通过Web浏览程序调用系统资源来完成。
浏览器/服务器模型与传统的客户机/服务器模式相比有以下优势: ① 浏览器/服务器模式大大简化了客户端。
客户端成为廋客户机开发、维护等几乎所有工作也都集中在服务器端。
对网络应用进行升级时只需要更新服务端不必要更新客户端减轻了系统维护与升级的成本和工作量。
② 事物层可在跨平台的客户端共享不同逻辑组件的分离意味着图形设计人员事物逻辑开发人员和数据库分析人员可以相对独立的设计各自的部分。
统一的抽象的用户界面可使用户更有效的从同一数据源中存取数据。
③浏览器/服务器结构可更有效的在Internet/Intranet上运行。
极大的发挥对异构系统及异种数据库的支持能力及几乎是无限制的系统扩展能力。
2.系统的体系结构与开发环境 2.1 三层结构技术 本系统采用三层结构实现将客户端与用户界面无关的功能移进了中间层第二层与表示功能层和数据层构成三层结构。
Web服务器作为表示层大量的业务处理程序放在应用服务器上作为功能层而将数据库放在数据库服务器上作为数据层。
浏览器/服务器三层结构分布十分灵活功能层和数据层中的服务器可以有一个到多个。
大规模管理信息系统中的数据库和应用程序组件可以被分布在不同的服务器上运行。
这些服务器可以是本地的也可以是远程的使系统更合理更灵活更具扩展性。
系统具有彻底的开放性不限制将要访问系统的用户数。
我们开发的是一个小型信息系统因此所有的服务器均集中在一台主机上。
2.2 系统体系结构 本系统的体系结构如图1所示。
采用Red Hat Linux 7.2作为系统平台。
Linux不但可以完全免费得到具有比Windows更大的稳定性和更强的功能。
运行在Linux系统下的Web2 服务器Apache稳定性高、速度快而且功能强大许多大型的门户网站和综合网站都用它作为Web服务器软件。
Apache再加上一个完全基于网络的操作系统―Linux是建立一个Web站点的首选2。
MySQL是一种速度快可靠性高并且易于使用的数据库产品可以适应几百万条记录的数据表。
MySQL容易与Apache集成。
Apache带有专门的Perl支持模块为建立基于数据库的动态网站提供了强大工具。
采用CGI/Perl来创建动态的Web页面。
CGI程序的主要任务是处理用户提交的表单数据内容并产生表单网页的数据。
Perl是最适合处理文本格式数据的语言成为CGI程序的首选语言。
CGI程序将用户访问数据库请求转换成查询数据库的语句并将查询的结果以HTML的形式返回给客户。
用户输入的数据是文本内容查询数据库SQL语句是文本内容数据库返回的结果也是文本内容所以Perl最适合编写CGI程序的语言。
2.3 CGI的工作原理 CGI规范主要定义CGI程序与Web服务器之间的通信方式CGI程序可以通过以下4种方式与WEB服务器进行通信3。
①环境变量Environmental Variable:WEB服务器使用环境变量与CGI程序通信。
在CGI规范中定义了这些起通信作用的环境变量。
当WEB Server调用CGI程序时所有这些环境变量被设置。
②命令行参数WEB服务器调用CGI程序时指定命令行参数。
③标准输入WEB服务器将HTTP请求报文体中的信息送至CGI程序的标准输入输入内容的长度由环境变量CONTENT_LENGTH决定。
④标准输出CGI程序将自己的输出送至标准输出这里的标准输出实际上是一个完整的客户端浏览器可以识别的HTML文档。
我们采用的是将CGI程序包含在HTML页面之内执行的方式这种执行方式被称为服务器端包含Server-Side Include即SSI。
SSI HTML文档的后缀是“. shtml”。
当用户访问这种文档时Web服务器创建子进程来执行这些CGI程序并将CGI程序执行的结果输出到文档中返回给用户。
2.4 CGI/Perl 可以编写CGI程序的语言有很多如C
VB等。
我们选用Perl语言因为Perl语言具有适应性强使用简单的特点已成为CGI编程事实上的标准语言。
用Perl编写的CGI程序执行方法如下用户通过浏览器向Web服务器发出HTTP请求如果请求是一个CGI程序通常以CGI或pl为文件名后缀则服务器启动本机上的Perl解释器载入该CGI程序运行。
如果HTTP请求方法是POSTCGI程序从标准输入读取浏览器发送的数据内容如果HTTP请求方式是GETCGI程序从环境变量QUERY_STRING中获取浏览器发送的数据内容。
最后将数据发送到客户的浏览器。
因为命令行参数和环境变量的大小都有限制因素而通过标准输入传送的数据则不然所以表格应尽可能的使用POST请求类型。
2.5 数据库的连接和断开 Perl提供了一个用于对数据库进行编程的接口这个接口叫DBI4。
在访问数据库之前Perl程序必须与数据库建立连接一次数据库连接被称为一次数据库会话session。
DBI使用一个数据库句柄来标识每个数据库会话。
所有的DBI函数均使用这个句柄操作数据库。
Apache 服务器 MySQL 服务器 浏 览 器 G 程 序 图1 基于CGI/PERL的WEBMIS的体系结构 执行顺序①请求访问表单页面②返回表单页面③用户提交表单内容 ④表单传送到CGI程序处理⑤ 调用SQL语句⑥返回数据⑦返回处理 结果⑻返回显示处理结果页面。
1 2 4 8 3 7 5 6 CGI/ Perl 3 DBI函数connect与数据库建立连接并返回标识这个连接的数据库句柄。
函数disconnect用于断开与数据库的连接并且释放数据库句柄。
use DBI 连接到MySQL中的mk数据库。
dbhDBI-connect‘DBI:MySQL:mk’root197911 die“cannot connect to database:”.DBI-errstr rcdbh-disconnect 2.6 SQL语句 DBI使用SQL语句完成数据库的操作。
DBI将一次操作分成两个阶段准备SQL语句和执行SQL语句。
方法prepare用来准备一条语句这个方法返回一个语句句柄方法execute执行已被准备的语句完成实际的操作。
一个语句句柄可以是以下三种状态之一①就绪状态Prepared调用了prepare方法成功之后②打开状态Open执行execute操作成功之后③非法状态Invalid调用disconnect方法成功之后或prepare调用失败。
以下是SQL程序片段 准备语句包含代替字符“”在执行语句时必须用实际字符替代所有这些替代字符这些实际值在参数中传递。
3. 房屋租赁信息系统的功能与实现 房屋租赁信息系统由三大模块组成① 管理员系统管理模块包括房产资料登记和修改租户资料登记以及租赁信息的统计。
②租户系统管理模块包括租户资料的修改退租管理以及房屋和交费信息的查询。
③成员系统管理模块成员资料的登记以及房屋信息资料的查询。
如图2所示。
在进入房屋租赁系统的时候必须进行身份认证。
有三种身份各种身份对应数据库中的一个表。
由CGI程序调取数据库中的用户信息通过身份认证后分别进入系统不同的界面否则返回登录界面。
登录界面的程序Index.html的主要部分如下用户名:密码:prepareqinsert into house values die Cant prepare statement :sth-errstrn 执行插入语句 sth-executeh_nameh_idh_areah_structh_useh_apph_moneyh_statush_memo 图2 房屋租赁系统结构和功能图 界 面 房屋修改 界 面 租户登记 界 面 房屋登记 界 面 租户查询 界 面 房屋查询 界 面 空房查询 界 面 租户修改 界 面 成员注册 界 面 密码修改 界 面 成员查询 界 面 房屋退租 界 面 成员管理界面 member.shtml 租户管理界面 lessee.shtml 管理员管理界面 manager.shtml 图2 房屋租赁信息系统结构和功能图 界 面 登陆界面Index.html身份认证test.pl 4 size”60” 用户填写数据后按下按钮提交数据到WEB服务器即名为WebMIS的主机。
由action指定的动作是执行程序test.pl。
关键是将用户填写的数据传递给该程序Post方式决定用标准输入传递数据。
将数据插入到MySQL数据库里具体的表中要用到DBI。
DBI定义了三种与数据库进行交互的句柄驱动器程序句柄 drh 数据库句柄 dbh 语句句柄 sth。
drh没有实际的用处。
Perl与数据库进行信息交互的程序如下 /usr/bin/Perl use CGI qw/:standard/ use DBI qnew CGI 变量赋值 nameparam‘name’ passparam‘passwd’ 连接MySQL中的某一个数据库 dbhDBI-connectdbi:MySQL:mkroot197911 dieCant connect to databse discuss : DBI-errstrn sthdbh-prepareselect from manager where name And password die “cannot:dbi-errstrn” sth-executenamepassdie “dbh-errstrn” if sth-fetchrow_arrayprint q-redirect“../manager.shtml” else print q-redirect“../index.pl” 其中param是一个获取参数函数它将由标准输入得到的数据按html表格中输入数据对应的名字拆分分别赋值给自定义变量namepass。
4结论 采用CGI/Perl编程技术实现动态网页在Linux环境下实现了用于房屋租赁的三层结构WebMIS。
CGI/Perl 编程简明扼要易于实现。
本系统所用的系统软件均可免费获得这为小型企业建立基于Web的信息系统提供了一个非常经济和实用的方案。
参考文献 1 叶林基于内联网三层结构的用电管理信息系统与电力资源优化分配天津大学硕士
论文1998年12月 2 陈雅秀著 精通Linux网络服务器架设实务.北京:中国铁道出版社.2001年. 3 美Shishir Gundavaran 著宋荣石从珍等译CGI Proguamming on the World Wide Web 北京:电子工业出版社.1998年. 4 Alligator DescartesTim Bunce著张家万译Programming the Perl DBI.北京:中国电力出版社 2001年.5
上一篇:
《水利水电工程设计计算程序集》(4
下一篇:
法律专业开题报告范文