一个动态文学网站的设计与实现
摘 要
由于网络的飞速发展,人们获取最新信息的来源由报纸和杂志逐渐转变为网络。文学网站就是一个获取最新文学作品的来源,它使读者足不出户就可以看到最流行的文学作品。同时作者也可以根据读者的评价,改变写作风格,从而避免失败的可能。根据这些特点,设计出的动态文学网站具有以下功能:根据各种条件搜索想要的作品;作者上传和管理作品;管理员审核待发表作品,添加/删除具有不同身份的用户;读者经过身份验证后阅读/评价作品的功能;在站内进行短信交流。为了很好的实现这些功能,文学网站采用windows2000+asp+access进行开发,以实现一个界面友好,功能强大,操作简单,具有一定商业价值的动态文学网站,在此简单介绍它的基本设计方法,开发工具,并对数据库和各主要功能模块设计进行了详细的分析,最后给出系统测试结果。
关键词:文学作品;网站;ASP;商业价值
The Design and Realization of a Dynamic Literature Website
Abstract
As the fast development of network, people are more and more like to get information from Internet rather than newspapers and magazines. The literature website is one of sources that people get the latest literature products. It makes people read the most fashionable literature products even at home. At the same time, writers’ can change writing styles by readers’ opinions to avoid the failing rate of his/her products. A dynamic literature website should have the follow functions: search products in different ways; writers can upload and manage his /her own products; administrator can audit products and add& delete users of different identity; readers can read& review products after identity check, and communicate with each other with simple E-mail in the website. Follow these requests, the dynamic literature website is developed by windows2000 + asp + access, and finally realizes a friendly-surface, powerful-function, easy-management dynamic literature website with certain mercantile value. The follow parts simply introduced its basic design method, develop tools, and make a particular analysis of database and main function parts, at last give the system test result.
Key words: literature; website; ASP;Mercantile value
目 录
论文总页数:21页
1 引 言
20世纪末,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。据估计,目前Internet上已有上百万个Web 站点,其内容范围跨越了教育科研、文化事业、金融商业、新闻出版、娱乐体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。
网络与数据库技术的发展和普及同时也导致了人们获取信息来源的巨大变化。人们已不再满足于传统的通过书籍,而是渴望通过Internet了解跟多的信息。而载体为网络的文学以其高效率、低成本的优势,逐步替代了依靠书籍传播的传统文学。许多传统的,纸张上的信息正在以电子信息的形式被移植到互联网上。因此,越来越多的文学站应运而生。作为一个成熟的文学网站,首先应该具有文章的上传功能,这样作者才能顺利的在第一时间在网上发表自己的作品;其次,为了避免不良信息的传播,还应该存在一个对文章内容的审核机制;最后,网站必须有搜索功能,以方便读者在茫茫书山中找到自己感兴趣的作品。
动态文学网站主要是用ASP 和Access 来完成系统设计的。Microsoft 推出的ASP (Active Server Pages)技术可以开发出满足企业、组织和个人需求的各种站点。ASP 通过服务器端脚本的方式实现服务器端动态网页,支持使用ActiveX 组件扩展其功能,因此借助ASP,用户可以开发出功能强大的站点。同时Web 已经不再局限于仅仅提供大量的信息服务。Web技术的发展,使得那些具有交互动态页面、有条理的数据库查询、丰富信息内容的网页成为最吸引人的网页。数据库技术为动态网页的发展提供了功能强大的后台数据处理,而Access数据库是目前最流行的数据库系统之一,由于它对服务器的要求较低,因此也是最适合大众安装并上机实践的完整的数据库管理系统。同时,由于两者都是由微软开发,所以兼容性较好。数据库技术与网站的结合是当今Web 技术的一个热点。有了数据库的支持,可以扩展网页的功能,可以方便地设计出交互式页面,可以构造功能更加强大的后台管理系统,可以为网站的更新、维护提供极大的方便。
此课题的研究方法为:分析动态文学网站的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括数据库相关知识等),选择Access数据库,在ASP环境下运用JavaScript脚本语言进行本毕业设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;最后,系统开发完毕后,进行调试和运行。
2 系统开发环境介绍
ASP是Active Server Page的缩写,是微软公司推出的Web应用程序开发技术。ASP有访问数据库,并执行相应的录入、查询、删除和修改的操作;还可以根据服务器的配置读写Web服务端的文件;能够控制和管理用户的访问权限,限制用户在网站的行为。ASP与其他方式开发网络数据库的优点在于,[1]ASP是基于Microsoft Windows NT和Microsoft Internet Information Server的开发式脚本开发环境,它很好的把HTML和脚本开发融合在一起,提高了编程的灵活性,降低了开发难度。ASP中的脚本在Web服务端运行,而不是传统的在客户端浏览器中运行。这一措施使客户的浏览器无须担心服务器端的网页是用什么脚本编写的,ASP都会生成一个符合HTML标准的网页送到客户端。ASP还将HTML完全融合在一起,创建简单,不需要编译、链接,脚本可以在ASP环境下直接运行。ASP直接建立在Web服务器中,并且作为Web的一个服务运行,支持多用户、多线程。
ASP具有的优点如下:
(1)无需编译:ASP程序直接由Web服务器的动态库asp.dll解释执行,无需编译和连接;
(2)独立于浏览器:由于ASP程序在服务器端解释执行,因此客户端用户只要使用系统自带的浏览器,即可浏览采用ASP设计的网页;
(3)安全性高:ASP程序在服务端执行,客户端浏览器看到的只是HTML文件,可以避免源程序被泄漏;
(4)可扩展性好:ASP具有很强的扩展性,开发人员可以根据需要使用Visual Basic或Visual C等多种语言制作组件供ASP程序调用;
(5)执行效率高:ASP提供最优化的多线程环境,可在一个进程中创建多个线程以同时为多个浏览者提供服务,既节约了服务器的资源,又提高了程序执行效率。
Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、 模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理 系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
Access是一种关系型数据库管理系统,其主要特点如下:
(1)存储方式单一
Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。
(2) 面向对象
Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个 应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方 法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。
(3)界面友好、易操作
Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供 了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
(4)集成环境、处理多种数据信息
Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
(5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、 Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。
Access是Microsoft Office的一个组件,一个前后台结合的数据库“软件”。也就是说Access既拥有用户界面(VB可以用来开发用户界面);也拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在“表”中存储数据。而所有这些都存储在一个MDB格式的文件中。
IIS是Internet Information Server的缩写,它是微软公司主推的服务器,最新的版本是Windows2000里面包含的IIS 5,IIS与Window NT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。
IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。
IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的、富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者 编译应用程序,IIS完全支持VBScript,JavaScript开发软件以及Java,它也支持CGI和Win CGI,以及ISAPI扩展和过滤器。
IIS支持服务器应用的Microsoft BackOffice系列。Microsoft BackOffice系列包括以下内容:
(1)Microsoft Exchange Server 客户/服务器通讯和群组软件;
(2)Microsoft Proxy Server 代理服务器;
(3)用于连接IBM企业网络的Microsoft SNA Server;
(4)用于集中管理分布式系统的Microsoft Systems Management Server;
(5)Microsoft Commercial Internet System(MCIS)。
IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。
IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Network Management Protocol,简单网络管理协议)之类的NT已有管理工具。
IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位 Windows应用程序的Internet扩展可以把FTP、SMTP和HTTP协议置于容易使用而且任务集中的界面中,这些界面将Internet应用程 序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多用于Internet邮件扩展),它可以为Internet应用程序的访问提供一个简单的注册项。
IIS的一个重要特性是支持ASP。IIS 3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JavaScript开发软件,或者由 Visual Basic、Java、Visual C++开发系统,以及现有的CGI和Win CGI脚本开发的应用程序,IIS都提供强大的本地支持。
3 系统需求分析
随着我国经济高速增长,随着电脑,网络技术的日益普及,网络用户的快速增长,网络信息发布的相关服务也越来越多,同时所针对的用户群也越来越单一。传统的单独制作网页发布的模式已经不适合用户的需求,一个系统化、自动化、高效率的动态文学网站已经势在必行。
本系统模块设计目标是采用前台书籍信息录入—>后台信息审核—>前台动态页面发布的形式,适应网站大规模浏览量要求,形成一个系统化、自动化,高效率的动态文学网站。本系统充分考虑了系统的可扩展性和商业活动特有的业务流程,利用ASP基本知识以及Access的基本操作,使它具有良好的稳定性并且便于维护。
整个系统需要三个角色,分别为管理员、普通用户、审核员。
(1)管理员
管理员拥有系统的最高权限,除了拥有普通用户所有的权力外,还有包括添加/删除用户、审核文章等重要的权限。
(2)普通用户
用户的权限低于管理员,作为一个用户,拥有最普通的权限:发表/浏览文章、对文章发表评论、发送/接收站内短信。
(3)审核员
审核员是一个特殊的身分,它的权限低于管理员而高于用户,其主要责任是审核文章。因此,除了拥有普通用户的权力外,审核员还可以审核文章。
(1)管理员
管理员在登录成功后进入后台,有6个功能选项,分别为:个人信息、稿件管理、短信管理、文集管理、编辑管理、退出登录。在个人信息中可以对注册时填写的基本信息进行查看和修改;在稿件管理中,可以发表文章,查看已发表的稿件和待审核的稿件;在短信管理中,可以接受和发送站内短信;在文集管理中,可以对个人作品集命名和撰写简介;在编辑管理中,可以浏览所有已发表的文章,对待审核的文章进行查看和审核,对用户进行添加/删除管理。
(2)普通用户
管理员在登录成功后进入后台,有5个功能选项,分别为:个人信息、稿件管理、短信管理、文集管理、退出登录。在个人信息中可以对注册时填写的基本信息进行查看和修改;在稿件管理中,可以发表文章,查看自己已发表的稿件和待审核的稿件;在短信管理中,可以接受和发送站内短信;在文集管理中,可以对个人作品集命名和撰写简介。
(3)审核员
审核在登录成功后进入后台,有6个功能选项,分别为:个人信息、稿件管理、短信管理、文集管理、编辑管理、退出登录。在个人信息中可以对注册时填写的基本信息进行查看和修改;在稿件管理中,可以发表文章,查看已发表的稿件和待审核的稿件;在短信管理中,可以接受和发送站内短信;在文集管理中,可以对个人作品集命名和撰写简介;在编辑管理中,可以浏览所有已发表的文章,对待审核的文章进行查看和审核。
- 导向清晰
使用超文本链接或图片链接,使人们能够在网站上自由前进或后退,而不是浏览器上的前进或后退。
- 访问迅速
在互联网上30 秒的等待时间与我们平常10分钟等待时间的感觉相同。因此,要尽量避免使用过多的图片及体积过大的图片,以提升访问速度。
- 美工设计朴实
动态gif图片和Java动画以使网站上的图形或文字产生动态的效果。这不仅仅会增加网页下载时间,它更会分散游客对网站其它信息的注意力。由于在互联网浏览的大多是一些寻找信息的人们,因此要确定网站将为他们提供的是有价值的内容,而不是过度的装饰。
- 安全性能高
安全是最重要的问题。要保证代码无漏洞,数据库运行稳定,用户资料不外泄。
4 动态文学网站的设计
4.1.1 具体功能模块划分
(1)登录/注册模块
该模块通过用户输入的用户名、密码判断用户份的有效性。有效用户根据用户的角色定向到相应的功能界面,无效用户定向到登录失败页面。在退出系统时,程序会清除程序会话(session)中所有与该用户有关的数据,并返回到初始登录页。
(2)短信模块
该模块用于用户在站内的短信交流。用户可以根据对方的网名发送短信。当收信人,发信人,题目,内容都不为空时,短信被存储在message表中。同时flag,delR,delC设为1。当收信人查看了消息后,flag变为0,表示已阅读过。当收信人点击“删除”时,delR,delC变为1,短信被删除。
(3)文章发表模块
该模块用于文章的发表。作者输入文章的标题,内容,类型后,文章被存在shenhe表中,并等待管理员的审核。
在经过管理员审核并同意发表后,文章才会出现在网页上。
(4)管理模块
该模块用于对个人或网站的管理。不同权限拥有不同的管理级别:普通用户拥有最低级的管理级别,只能够更改个人信息;审核员在普通用户的基础上还多了审核文章的权限;管理员在审核员的基础上多了添加/删除用户的权限。
4.1.2 用户流程图
图1 用户流程图
4.2 数据库表的设计
几乎所有的Web项目都基于数据库,这使得数据库的设计在整个项目中举足轻重。本系统中大部分前台的显示信息都是从数据库中读取所需信息,而系统管理员则只需在后台通过修改数据库中的数据即可达到改变前台显示内容的目的。本设计根据系统需求分析,选用Access作为该系统的数据库。数据库取名为data.mdb,其中包含了系统中所有的数据。为了完整实现所计划完成的功能,数据库包含5张表,分别为admin,article,message,shenhe,type,存储着用户信息,文章信息,短信,文章审核情况和文章类型。下面对一些关键表作详细说明。
(1)Admin表:此表用来保存人员的个人信息,用户在注册时所填写的个人信息,被依次存在username至oicq中。ID为自动编号,每增加一个用户,值加1。other和content分别存放个人文集名称和内容。Oskey中的文本数据有super、check和input三种形式,分别对应管理员,审核员,普通用户三种身分,其中,注册用户的身分为普通用户。审核员和管理员身分只能由管理员在后台添加。此表的主键为ID。
表1 人员信息表(admin)
字段名 |
数据类型 |
描述 |
ID |
自动编号 |
ID号 |
username |
文本 |
用户名 |
passwd |
文本 |
密码 |
Ask |
文本 |
密码提示问题 |
answer |
文本 |
密码提示问题答案 |
amount |
数字 |
发表文章数 |
grade |
文本 |
等级 |
Sex |
文本 |
性别 |
date |
文本 |
日期 |
|
文本 |
电子邮件 |
infor |
文本 |
个人说明 |
addr |
文本 |
地址 |
oicq |
数字 |
QQ号 |
other |
文本 |
个人文集名 |
content |
文本 |
个人文集内容 |
oskey |
文本 |
身份 |
(2)Article表:此表用来保存文章信息。其中tjnews用星数表示文章推荐程度。星数越多,推荐度越高,在“编辑推荐”栏目中的排行也越靠前。此表主键设为newsid。
表2 文章信息表(article)
字段名 |
数据类型 |
描述 |
newsid |
自动编号 |
编号 |
title |
文本 |
名称 |
content |
备注 |
内容 |
typename |
文本 |
类型 |
zznews |
文本 |
作者名字 |
tjnews |
文本 |
推荐程度 |
shenhe |
文本 |
是否经过审核 |
Hits |
数字 |
点击数 |
review |
备注 |
评论 |
dateandtime |
时间/日期 |
发表时间 |
reviewcount |
数字 |
评论数量 |
(3)message表:此表用来保存站内短信。flag字段表示短信是否未读,初始值为1,表示为未读,当阅读后变为0,表示为已读。其中ID作为主键。
表3 站内短信表(message)
字段名 |
数据类型 |
描述 |
ID |
自动编号 |
编号 |
Sender |
文本 |
发信人 |
incept |
文本 |
收信人 |
title |
文本 |
信息名 |
Content |
备注 |
信息内容 |
Flag |
数字 |
是否未读 |
DelR |
数字 |
删除收信人 |
DelS |
数字 |
删除发信人 |
(4)shenhe表:此表用来保存文章审核信息,其中newsID作为主键
表4 审核状况表(shenhe)
字段名 |
数据类型 |
描述 |
newsID |
自动编号 |
编号 |
username |
文本 |
发表人名字 |
title |
文本 |
文章名 |
content |
备注 |
文章内容 |
shenhe |
文本 |
是否经过审核 |
Type |
文本 |
文章类型 |
zznews |
文本 |
作者名字 |
数据库的连接由文件conn.asp来实现,在需要进行数据库连接的模块中,加入<!--#include file="conn.asp"-->进行调用。
调用数据库的源代码为:
<%
dim conn
dim connstr
on error resume next
connstr="DBQ="+server.mappath("data/data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
5 系统主要模块的开发和实现
5.1 登录
图2 会员登录界面