1、电子图书馆程序结构一、系统开发背景及原理1 开发背景互联网技术的不断发展和普及已经改变了人们的工作、学习和生活习惯,很多人希望能够通过互联网满足自己的学习、工作上的需求;同时,许多企业、学校等单位把实现电子商务、信息共享作为一个发展方向。因此,如何构建互联网站,开发网络应用程序已经成为当前的热门技术之一。本人正是在这种情况下,根据所学专业和学习环境结合实际情况在辅导老师的帮助下尝试开发了这样一套网络应用系统电子图书馆。2 技术原理21设计思想电子图书馆系统的开发采用的是浏览器/服务器(Browser/Server)结构,是种随着Internet技术发兴起,对客户机/服务器(Client/Ser
2、ver)结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但主要事务逻辑在服务器端实现。B/S结构主要利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript等)、ASP(Active Server Pages)技术以及ActiveX技术。采用B/S结构的应用程序主要运行在服务器端,而运行在客户端的界面层的程序一般比较小,对系统的要求不高,在这种情形下,系统的硬件主要取决于服务器,只要增加服务器的处理能力,就能够满足系统处理数据的能力,也就是说大部分升级维护工作只需要针对服务器进行,大大节省
3、人力、时间和费用。22 ASP技术ASP是一套Web服务器端的开发环境,可以使用ASP结合HTML网页、 ASP 指令和ActiveX建立和运行动态、交互、高性能的Web服务器应用程序。在使用ASP时,所有程序的ASP代码都将在服务器端执行,包括所有嵌在普通的HTML中脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。ASP文件的后缀名为.asp,ASP程序的控制部分是用VBScript和JavaScript等脚本语言来设计的。当执行ASP程序时,脚本程序将一整套命令发送给脚本解释器(及脚本引擎),有脚本解释器进行翻译,并
4、将转换成服务器能执行的命令利用ASP技术之所以能够动态创建Web页面,一个主要原因就是ASP提供了功能内置对象,在本系统中主要下面几个:(1)Response对象,该对象的功能是用于动态响应客户端请求,并将动态响应的结果返回给客户端浏览器;(2)Request对象,该对象被用于读取客户端传送给服务器的值,通常由客户端向Web服务器提出请求,Web服务器才会响应信息,语法结构为Request.collection(variable);(3)Session对象,Session实际上是服务器与客户端之间的会话,可以用来存放访问者的一些信息,并且这些信息当用户在应用程序的页面之间跳转时始终存在不被清除
5、。(4)Server对象,Server对象提供了一系列的方法和属性,在使用ASP编写脚本时是非常有用的。最常用的是Server.CreateObject方法,它允许我们在当前页的环境或会话中在服务器上实例化其他COM对象。还有一些方法能够把字符串翻译成在URL和HTML中使用的正确格式,它通过把非法字符转换成为正确、合法的等价字符来实现。23 关于ADO技术(1)采用ASP技术开发网络信息应用系统不可避免要运用到数据库即Web数据库,而ADO是ASP中推荐的访问数据库的方式。ASP用Database Access组件与数据库进行连接,Database Access组件通过ActiveX Dat
6、a Objects(ADO)访问存储在数据库或其他表格化数据结构中的信息。现在,Microsoft对应用程序访问各种各样的数据源所使用的方法是OLEDB,OLEDB介于ODBC层和应用程序之间。在你的ASP页面中,ADO介于ODEDB之上的“应用程序”。你的ADO调用首先被送到OLEDB,接着被送到ODBC层。OLEDB是一套组件对象模型(COM)接口,但它是相当复杂的。这样,你需要一个连接应用程序与OLEDB的桥梁,这就是ADO。而且,它支持开放式数据库连接(ODBC)标准的关系型数据库。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO支持用于建立基于浏览器/服务器(B/S
7、)应用程序的主要功能。(2)ADO包含了连接对象(Connection)、命令对象(Command)、记录集对象(Recordset)、字段对象(Filed)、参数对象(Parameter)、错误对象(Error)、属性对象(Property)和集合与事件等。(3)ASP与ACCESS数据库进行连接,代码如下:Set objConnection = Server.CreateObject (ADODB.Connection)DBPath = Server.MapPath (db1.mdb)objConnection.Open driver=Microsoft Access Driver (*.
8、mdb);dbq= & DBPathSQLQuery = SELECT * FROM Author”Set rsRecordset = Server.CreateObject (ADODB.Recordset)rsRecordset.Open SQLQuery,objConnection, adOpenKeyset, adLockReadOnly3 开发环境31 硬件环境服务器采用的是CPU P4 2.4G, RAM 512M,硬盘120G的配置;工作站采用的是两种配置: (1)CPU C4 1.0G, RAM 128M,硬盘 40G (2)CPU PIII 700M,RAM 64M,硬盘 1
9、0G网络连接设备:(1) 集线器:Dlink 24口(2) 交换机:RealTek 24口32 软件环境321操作系统(1) 服务器采用的操作系统是Windows2000 Server SP4版(2) 工作站采用的操作系统是Windows98和Windows2000 Professional版。322应用软件(1) ASP运行环境在Windows 2000操作系统上,通常选择IIS 5.0作为ASP得以运行的网络服务器。IIS是Internet Information Server的缩写,它是微软公司主推的Web服务器,它与Windows 2000 系列操作系统结合可以建立强大、灵活而安全的I
10、nternet和Intranet站点。IIS引入ASP后,可以很容易地张贴动态内容和开发基于Web的应用程序。(2) 系统开发软件 Frontpage2000 Dreamweaver2004MX(3) 数据库系统 MS Access2000二、登录页面default.asp登录页面是系统的起始页面,采用网页制作中常用的HTML表单(FORM)制作交互页面的手段实现。在该页面中登录用户必须输入正确的用户名和密码,然后点击登录按钮后,用户所输入的信息被提交给表单处理程序(Action)进行用户身份校验。 用户名: 密码:     三、用户身份校验页面logon.asplog
11、on.asp是一个在服务器上执行的表单处理程序,在本系统中需要处理的数据是用户名和密码。数据信息提交到logon.asp页面后( name = Request.Form(name) passwd = Request.Form(passwd) ),系统利用ActiveX数据对象(ADO)访问系统的用户数据库,并采用结构化查询语言(SQL)进行检索,以确认所输入的用户名和密码是否正确,如果不正确则在客户端的页面中显示出错信息。如果正确,系统将利用Session对象存储访问者的信息,即用户名和用户级别将分别存储在session(“username”)和session(“usertype”)中,以便于
12、服务器对这些信息进行跟踪判断,然后显示电子图书馆主页面。利用ADODB方式和SQL连接和查询数据库的具体程序实现sql = select name,passwd,type from usertype where name = & name & set conn = server.CreateObject(adodb.connection) conn.Open application(dsn) set rs = server.CreateObject(adodb.recordset) rs.Open sql,conn利用ASP的Session对象存储访问者信息的具体程序实现 session(us
13、ername) = rs(name) session(usertype) = rs(type)四、电子图书馆主页面frame.asp电子图书馆主页面是系统的基本工作页面,所有的操作及显示信息都在这个页面中进行,整个页面利用框架(frame)技术将浏览器窗口分成三个区域:(1)顶部(xtop区)为菜单页面;(2)左边(xmargin区)为阅读功能区;(3)右边(xbody区)为阅读区。在系统运行过程中,顶部菜单一直都是显示状态;右边的阅读区则根据操作显示不同的数据信息;左边的阅读功能区可以在“阅览”、“搜索”、“书签”、“书评”中进行切换,同时还具有隐藏和显示两个状态。 1. 顶部菜单页面xto
14、p.asp顶部菜单页面处于电子图书馆主页面的顶部(xtop区),采用JavaScript脚本语言实现动态的菜单显示效果。顶部菜单包括:书库首页、显示/隐藏菜单、新闻、按分类浏览、个人信息、更改密码、添加书签、发表看法、重新生成书目、软件下载、退出系统。在显示顶部菜单页面的同时,还将弹出一个小窗口(personal.asp),显示欢迎信息和用户的身份信息。由于本系统需要用户身份验证,为了防止没有正确登录的用户通过指定URL的方式进入系统,对于每一个需要检查用户权限的页面,将在页面开头包含identify.asp文件进行权限检查。 书库首页 显示/隐藏菜单 新闻 按分类浏览 个人信息 更改密码 添
15、加书签 发表看法%if session(usertype) 重新生成书目 软件下载 退出系统 1.1 权限检查文件identify.asp用户正确登录后,用户名存放在session(“username”)对象中,因此可以通过检查session(“username”)的方法来判断用户是否正确登录。如果用户正确登录,则程序继续执行;如果用户不是正常登录,页面将重定向到error.asp,给出出错提示,要求重新登录。if (isempty(session(username) or len(session(username)=0) then Response.Redirect error.aspend
16、 if1.2 书库首页xmain.asp返回书库首页的菜单命令,具体功能及显示内容见右侧阅读区页面书库首页xmain.asp的说明。1.3 显示/隐藏菜单show_onclick( )由于系统主页利用框架(Frame)分成了三个区域,在阅读内容时为了获得更大的阅读区域显示更多的内容,可利用显示/隐藏菜单按钮关闭阅读功能区来实现。 通过利用JavaScript函数修改Frameset的Cols属性值实现:(1)隐藏阅读功能区 top.window.f2.cols = 0,*; (2)显示阅读功能区 top.window.f2.cols = 300,* 。1.4 新闻news/news_index
17、.htm在主页的阅读功能区中显示新闻页面。1.5 按分类浏览readmain.asp本系统对于书目的浏览通过两种方式实现,一是通过顶部菜单中的“按分类浏览”进行漫游式的浏览;二是通过左边阅读功能区菜单中的类别目录进行浏览。本节先介绍前者,后者将在阅读功能区页面中说明。Readmain.asp文件是“按分类浏览”功能的主文件,同时也是本系统重点实现部分,主要功能是显示书库根节点的子类别。(1)本模块首先连接书目数据库,搜索图书的编号id、名称title及类别type_id:set conn = server.CreateObject(adodb.connection)conn.Open appl
18、ication(dsn)sql = select id,title,type_id from bookwarelist where parent = 书库set rs = server.CreateObject(adodb.recordset)rs.Open sql,conn 。(2)然后按照第一级大类以及大类的子类进行排列显示如教育信息类及子类公共关系学,经济法律及子类创业实战、法律实践、法律理论等,通过单击连接点访问当前类别的子类和书目列表:while not rs.eof id = rs(id) title = rs(title) type_id = rs(type_id) A href
19、=read_class.asp?title=&type_id=4 then i_temp = 0 % % end if loop rs1.Close set rs1 = nothing rs.MoveNext wend1.5.1 当前子类及书目列表read_class.asp(1) 在readmain.asp页面中点击子类名即可连接到read_class.asp页面在阅读区中显示该子类所包含的下一级子类名称及书目列表。超连接实现的方法如下:A href=read_class.asp?title=&type_id=其中title=&type_id=是要传递给 read_class.asp页面的数
20、据。(2) 在read_class.asp加载时首先从父页面中获得所选子类的名称及类别编号,实现方法如下:parent_title = Request.QueryString(title)/图书名称parent_type_id = Request.QueryString(type_id)/图书类别编号(3) 在read_class.asp页面中,根据所选子类的名称显示该子类下的下一级子类和书目列表。(A)首先根据所选子类名称parent_title显示该子类的下级子类列表:set conn = server.CreateObject(adodb.connection)conn.Open app
21、lication(dsn)i_temp = -1sql1 = select id,title,type_id from bookwarelist where parent = & parent_title & set rs1 = server.CreateObject(adodb.recordset)rs1.Open sql1,connwhile not rs1.eof id = rs1(id) title = rs1(title) type_id = rs1(type_id) i_temp = i_temp + 1 if i_temp = 3 then Response.Write i_te
22、mp = 0 end ifa href=read_class.asp?title=&type_id=% rs1.MoveNextwend(B)然后显示该子类的书目列表,同时根据登录者的权限session(usertype)=1设置书目列表后的操作列表,普通登录者可以进行添加标签、写书评、看书评操作,管理员登录者还可以进行推荐、加入新书列表操作。sql = select bookid,name,Author,times from BookDetail where type= & b_type set rs = server.CreateObject(adodb.recordset) rs.CursorLocation = 3 客户端处理游标 rs.Open sql,conn if rs.EOF then rs.Close set rs = nothing conn.Close set conn = nothing Response.Write 没有符合条件的记录。 Response.Write Response.End end if rs.PageSize = 20 rs.absolutepage=cint(strPage) select_count = rs.RecordCount select_
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1