基于ASP的校园新闻发布系统的设计与制作.docx
《基于ASP的校园新闻发布系统的设计与制作.docx》由会员分享,可在线阅读,更多相关《基于ASP的校园新闻发布系统的设计与制作.docx(65页珍藏版)》请在冰豆网上搜索。
基于ASP的校园新闻发布系统的设计与制作
博州广播电视大学
开放教育专科
毕业设计论文
论文题目:
基于WEB的新闻发布系统的设计与制作
专业:
计算机信息管理
班级:
2009秋计算机信息管理专科
学号:
09650014
姓名:
陈峰
辅导老师:
陈亮
【摘要】我们从建站的实际情况出发,经过对有关网站新闻发布事项的一番考察和分析,确立了新闻发布系统的具体实现功能。
并阐述系统的结构设计和功能设计,实现新闻的分类显示,最近新闻的提示,新闻滚动功能等。
经过授权的用户可以通过Web浏览器,以人机交互式的客户端程序实现对学校新闻的发布、管理、实时的进行行为统计和记录。
本系统是学校网站的一个子系统,具有很好的外部接口,能够很好的配合站点的其它子系统服务于网站的新闻发布.该系统是一个基于新闻发布和内容管理的全站管理系统;基于B/S模式WEBMIS系统,本系统可以将杂乱无章的信息(包括文字、图片和影音)经过组织,合理而且有序地呈现在大家面前。
简单的说,新闻发布系统就是充当一个网络新闻媒介的功能。
主要实现对新闻的分类,审核,发布,模拟了一般新闻媒介的发布的过程
【关键词】ASP新闻发布WEB
前言
在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。
Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。
因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
第一章诸论
第一节开发工具的选用及介绍
1.ASP的优势:
ActiveServerPages:
“动态服务器网页”,一般简称为“ASP”,ASP之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的HTML格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE或Netscape)都可以正确地获得ASP的“执行”结果,并且将这ASP执行的结果直接在浏览器中“浏览”,不像VBScript或JavaScript是在客户端(Client)的浏览器上执行,若使用VBScript来设计程序,客户端(Client)在IE浏览器中可以显示程序执行的结果,可是,客户端(Client)若使用Netscape浏览器就无法显示VBScript的执行结果。
2.ASP的特点:
任何开发工具皆可发展ASP。
只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。
当然,其他网页发展工具,例如,FrontPageExpress、FrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。
3.通吃各家浏览由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。
4.语言相容性高:
ASP与所有的ActiveXScript语言都相容,除了可结合HTML,VBScript、JavaScript、ActiveX服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(ThirdParty)所提供的语言。
隐密安全性高。
如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!
这是因杰ASP程序先于网站服务(WebServer)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。
5.易于操控数据库:
ASP可以轻易地通过ODBC(OpenDatabaseConnectivity)驱动程序连接各种不同的数据库,例如:
Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel”文件当成数据库用。
6.面向对象学习容易:
ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:
Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。
ASP的六大内部对象Request、Response、Server、Session、Application、ObjectContext从客户端取得信息将信息送给客户端提供一些Web服务器工具储存在一个Session内的用户信息,该信息仅可被该用户访问在一个ASP-Application中让不同的客户端共享信息可以用来配合MicrosoftTransaction服务器进行分布式事务处理。
所以我选择了ASP结合Frontpage架构网站。
在此期间本人将使用MacromediaDreamweaverMX2004进行ASP页面的编码,并使用IIS6.0对页面进行调试。
第二节ASP技术访问WEB数据库
一.访问WEB数据库的多种方案
目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:
(1).公共网关接口CGI(CommonGatewayInterface)
CGI是较早实现的技术。
适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。
(2).INTERNET数据库连接器IDC(InternetDatabaseConnector)。
IDC集成在ISAPI(InternetServerAPI)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。
(3).先进数据库连接器ADC(AdvanceDatabaseConnector)
ADC提供了ActiveXControl来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。
(4).JAVA/JDBC语言编程
JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。
用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。
(5).动态服务器页面ASP(ActiveServerPage)
ASP是微软公司最新推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的最佳选择。
二.ASP简介
1.ASP访问数据库的原理
ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。
当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveXDataObjects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。
由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。
此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。
2.ASP页面的结构:
ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成:
(1)标准的HTML标记:
所有的HTML标记均可使用。
(2)ASP语法命令:
位于<%%>标签内的ASP代码。
(3)服务器端的include语句:
可用#include语句调入其它ASP代码,增强了编程的灵活性。
(4)脚本语言:
ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可安装其它脚本语言,如Perl、Rexx等。
3.ASP的运行环境
目前ASP可运行在三种环境下。
(1)WINDOWSNTserver4.0运行IIS3.0(InternetInformationServer)以上。
(2)WINDOWSNTworkstation4.0运行PeerWebServer3.0以上。
(3)WINDOWS95/98运行PWS(PersonalWebServer)。
其中以NTserver上的IIS功能最强,提供了对ASP的全面支持,是创建高速、稳定的ASP主页的最佳选择。
4.ASP的内建对象
ASP提供了六个内建对象,供用户直接调用:
(1)Application对象:
负责管理所有会话信息,可用来在指定的应用程序的所有用户之间共享信息。
(2)Session对象:
存贮特定用户的会话信息,只被该用户访问,当用户在不同WEB页面跳转时,Session中的变量在用户整个会话过程中一直保存。
Session对象需cookie支持。
(3)Request对象:
从用户端取得信息传递给服务器,是ASP读取用户输入的主要方法。
(4)Response对象:
服务器将输出内容发送到用户端。
(5)Server对象:
提供对服务器有关方法和属性的访问。
(6)ObjectContext对象:
IIS4.0新增的对象,用来进行事务处理。
此项功能需得到MTS(MicrosoftTranscationServer)管理的支持。
5.ASP的主要内置组件:
(1)AdRotator组件:
用来按指定计划在同一页上自动轮换显示广告,用于WWW上日益重要的广告服务。
(2)BrowserCapabilities组件:
确定访问WEB站点的用户浏览器的功能数据,包括类型、性能、版本等。
(3)DatabaseAccess组件:
提供ADO(ActiveXDataObjects)来访问支持ODBC的数据库。
(4)FileAccess组件:
提供对服务器端文件的读写功能。
(5)ContentLinking组件:
生成WEB页内容列表,并将各页顺序连接,用于制作导航条。
此外,还可安装Myinfo、Counters、ContentRotator、PageCount等组件,用户也可自行编制Actiive组件,以提高系统的实用性。
6.DatabaseAccess组件ADO
WWW上很重要的应用是访问WEB数据库,用ASP访问WEB数据库时,必须使用ADO组件,ADO是ASP内置的ActiveX服务器组件(ActiveXServerComponent),通过在WEB服务器上设置ODBC和OLEDB可连接多种数据库:
如SYBASE、ORACLE、INFORMIX、SQLSERVER、ACCESS、VFP等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。
ADO组件主要提供了以下七个对象和四个集合来访问数据库。
(1)Connection对象:
建立与后台数据库的连接。
(2)Command对象:
执行SQL指令,访问数据库。
(3)Parameters对象和Parameters集合:
为Command对象提供数据和参数。
(4)RecordSet对象:
存放访问数据库后的数据信息,是最经常使用的对象。
(5)Field对象和Field集合:
提供对RecordSet中当前记录的各个字段进行访问的功能。
(6)Property对象和Properties集合:
提供有关信息,供Connection、Command、RecordSet、Field对象使用。
(7)Error对象和Errors集合:
提供访问数据库时的错误信息。
第二章系统分析与总体设计
很多网站都提供新闻栏目,例如搜狐、新浪等著名网站的新闻专栏。
许多企业和个人网站也需要定期发布一些关于企业或网站的新闻。
因为网络中新闻发布的频率非常高,如果使用静态网页作为新闻页面,则维护工作将非常繁琐,管理员每天需要制作大量的网页,从而浪费很多时间和精力。
使用新闻发布及管理系统可以使新闻发布和管理变得很轻松,管理员只需设置标题、内容和图片等新闻就可以了,系统将自动生成对应的网页。
本文将对新闻发布及管理系统进行系统分析与总体设计。
第一节系统功能描述
新闻发布及管理系统包括新闻类别管理、新闻发布管理、图片处理、新闻查询、网友评论和用户管理等模块。
具体描述如下:
1.新闻类别管理:
(1)新闻类别的录入,包括类别编号和类别名称等信息;
(2)新闻类别的修改;
(3)新闻类别的删除;
(4)新闻类别的查询。
2.新闻发布管理:
(1)基本新闻信息的录入,包括新闻标题、新闻内容和所属类别等;
(2)基本新闻信息的修改;
(3)基本新闻信息的删除;
3.图片处理模块:
(1)选择图片文件;
(2)上传图片文件;
(3)存储图片新闻;
(4)修改新闻图片;
(5)删除新闻图片;
(6)在网页中浏览新闻图片。
4.新闻查询模块:
(1)按照新闻类别分页显示新闻;-
(2)按照日期分页显示新闻。
5.网友留言模块:
(1)网友对某条新闻发表评论;
(2)管理员可以删除新闻评论。
6.系统用户管理功能:
(1)系统用户信息的录入,包括用户名和密码等信息;
(2)系统用户信息的修改;
(3)系统用户信息的删除。
第二节系统功能模块划分
从功能描述的内容可以看到,本实例可以实现6个完整的功能。
我们根据这些功能,设计出系统的功能模块,如图1所示。
图1新闻发布及管理系统功能模块示意图
新闻发布及管理系统的功能模块之间的关系如图2所示。
图2新闻发布及管理系统的功能模块关系图
在本系统中,用户管理模块的功能比较简单。
在系统初始化时,有一个默认的“系统管理员”用户Admin,由程序设计人员手动地添加到数据库中。
Admin用户可以创建用户、修改和删除用户;普通用户则只能修改自己的用户名和密码。
用户管理功能模块的关系如图3所示。
图3用户管理功能模块的关系图
第三节系统流程分析
为了使读者进一步了解本实例系统的设计,本小节将对系统进行流程分析。
多用户系统的工作流程都是从用户登录模块开始,对用户的身份进行认证。
身份认证可以分为以下两个过程:
(1)确认用户是否是有效的系统用户。
(2)确定用户的类型。
第1个过程决定用户能否进入系统。
第2个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。
本系统分为前台系统和后台系统两个部分。
前台系统不需要进行身份认证,任何人都可以通过浏览器阅读已经发布的新闻、发表网友评论。
后台系统的流程分析如图4所示。
Admin用户拥有所有的权限,普通用户只能对自己发布的新闻进行管理,包括修改新闻内容、删除新闻和删除网友评论。
图4后台系统的流程分析
第三章数据库结构设计与实现
作为毕业设计,本系统的数据主要是用于演示,数据存储量不是很大,因此本系统的数据库采用Access2003来创建,便于调试和使用,待投入到实际应用中去时,可随时将此数据库转换到大型的网络数据库管理系统中去,如SQLServer。
第一节创建数据库
首先创建一个Access2003数据库news.mdb,用来保存本系统的所有数据。
如下图:
第二节数据库逻辑结构设计
本系统数据库中包含以下4个表:
新闻类别表:
Category、新闻基本信息表:
News、网友评论信息表:
Discuss和用户信息表:
users。
1.新闻类别表Category
新闻类别表Category用来保存新闻类别数据,结构如表1所示。
表1 表Category的结构
编号
字段名称
数据结构
说明
1
CateId
数字
新闻类别编号
2
CateName
文本
新闻类别名称
2.基本新闻表News
基本新闻表News用来保存网上新闻的基本信息,结构如表2所示。
表2表News的结构
编号
字段名称
数据结构
说明
1
Id
数字
新闻编号
2
Title
文本
新闻标题
3
Content
备注
新闻内容
4
PostTime
日期/时间
提交时间
5
Poster
文本
提交人
6
CateId
数字
新闻类别编号
7
Attpic
文本
是否有图片标记(0没有;1有)
8
Readcount
数字
阅读次数
3.网友评论信息表Discuss
网友评论信息表Discuss用来保存网友对新闻的评论信息,结构如表3所示。
表3 表Discuss的结构
编号
字段名称
数据结构
说明
1
id
数字
评论编号
2
UserId
文本
评论人名称
3
Posttime
日期/时间
提交时间
4
Content
备注
评论内容
5
Newsld
数字
新闻编号
4.用户信息表Users
用户信息表Users用来保存用户的基本信息,结构如表8.4所示。
编号
字段名称
数据结构
说明
1
UserId
数字
用户ID号 。
2
UserName
文本
用户名
3
UserPwd
文本
密码
4
Ename
文本
用户姓名
5
Email
文本
电子邮箱
第四章目录结构与通用模块
第一节目录结构
在运行实例时,需要将web目录复制到IIS/PWS的根目录下,例如
目录下包含下面两个子目录:
images用于存储上传的新闻图片;
pic用于存储网页中的图片文件;
data用于存储系统的数据库文件;
其他ASP和HTM文件都保存在根目录下。
第二节通用模块
本实例中包含一些通用模块,这些模块以文件的形式保存,可以在其他文件中使用#include语句包含这些模块,使用其中定义的功能。
1.ConnDB.asp
ConnDB.asp的功能是实现到数据库的连接,因为在很多网页中都有连接数据库的操作,所以把它保存在文件ConnDB.asp中,这样可以避免重复编程。
ConnDB.asp的代码如下:
<%
dimConn
dimConnStr
setConn=server.createobject("adodb.connection")
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=data\news.mdb"
Conn.OpenConnStr
%>
在文件中引用此文件作为头文件就可以访问数据库,代码如下:
--#includeFile="ConnDB.asp"-->
2.IsAdmin.asp
因为本实例中有些功能只有Admin用户才有权限使用,所以在进入这些网页之前,需要判断用户是否是Admin。
IsAdmin.asp的功能是判断当前用户是否是Admin,如果不是,则中断执行;如果是,则不执行任何操作,直接进入包含它的网页。
IsAdmin.asp的代码如下:
<%
IfSession("UserName")<>"Admin"Then
Response.Write("不是Admin用户,没有此权限")
Response.End
EndIf
%>
在文件中引用此文件作为头文件,代码如下:
--#includeFile="IsAdmin.asp"-->
3.IsAuthor.asp
在修改和删除新闻时,除了Admin用户拥有所有权限外,其他用户只能修改自己创建的新闻。
所以在修改和删除新闻时,需要判断当前用户是否是Admin或指定新闻的作者。
IsAuthor.asp可以实现此功能,代码如下:
<%
IfSession("UserName")<>"Admin"Then
NewsId=Request("Id")
'根据新闻编号读取新闻信息
setrsNews=Server.CreateObject("ADODB.RecordSet")
sql="SELECT*FROMNewsWHEREId="&Trim(NewsId)
setrsNews=Conn.Execute(sql)
SetRs=conn.Execute(sql)
IfrsNews.EOFThen
Response.Write"指定新闻不存在"
Response.End
Else
'判断用户权限,是否可以维护新闻,管理员可以编辑所有新闻,编辑者只能修改自己的新闻
IfrsNews("Poster")<>Session("UserName")Then
Response.Write"不是Admin或新闻的作者,无权修改!
"
Response.End
EndIf
EndIf
EndIf
%>
如果当前用户是Admin,则IsAuthor.asp不做任何操作;否则,程序将根据参数Id读取新闻信息,并将Poster字段的值与当前用户名进行比较。
在两种情况下,IsAuthor.asp将阻止程序继续执行:
(1)指定新闻不存在;
(2)当前用户不是指定新闻的作者。
使用Response.End可以结束网页的输出。
在文件中引用此文件作为头文件,代码如下:
--#includeFile="IsAuthor.asp"-->
4.template.asp
在添加和修改新闻内容时,需要对字体、字号、颜色和排列位置等属性进行设置。
Template.asp可以实现这些功能。
Template.asp的设计界面如图5所示。
图5Template.asp的设计界面
在使用template.asp时,设置指定的选项,将会在新闻内容中生成相应的HTML代码。
例如,选中正文abc,然后选择“楷体”、“1号字”,将生成如下代码:
abc
[space]是自定义的符号,因为空格在转换成HTML格式时,将被替换为“ ;”,所以这里使用[space]表示空格。
在显示新闻内容时,程序将会自动将[space]转换为空格。
因为template.asp的代码较多,这里仅以字体控制的代码为例说明。
相关代码如下:
字体 ='')
{selection.createRange().text=''+selection.c