1、基于 ASP+SQL 的新闻发布系统 目 录 第一章 诸论 3 第一节 开发工具的选用及介绍 3 第二节 ASP 技术访问 WEB 数据库 4 第二章 系统分析与总体设计 8 第一节 系统功能描述 8 第二节 系统功能模块划分 9 第三节 系统流程分析 11 第三章 数据库结构设计与实现 12 第一节 创建数据库 12 第二节 数据库逻辑结构设计 13 第三节 创建表的脚本文件 15 第四章 目录结构与通用模块 17 第一节 目录结构 17 第二节 通用模块 18 第五章 系统主界面与登录程序设计 23 第一节 设计主界面 23 第二节 登录程序设计 28 第三节 设计管理界面 29 第六章
2、新闻类别管理模块设计 35 第一节 设计新闻类别管理界面 35 第二节 添加新闻类别 39 第三节 修改新闻类别 41 第四节 删除新闻类别 42 第七章 新闻发布管理模块设计 45 第一节 添加新闻 45 第二节 修改新闻 50 第三节 删除新闻 52 第四节 新闻查询管理 53 第八章 调试与安装 63 第一节 安装 IIS 63 第二节 ASP 硬件要求 64 结束语 65 参 考 文 献 66 后 记 66 摘要 【摘要】我们从建站的实际情况出发,经过对有关网站新闻发布事项的一番考察和分析,确立了新闻发布系统的具体实现功能。并阐述系统的结构设计和功能 设计,实现新闻的分类显示,最近新闻
3、的提示,新闻滚动功能等。经过授权的用户可以通过 Web 浏览器,以人机交互式的客户端程序实现对学校新闻的发布、管 理、实时的进行行为统计和记录。本系统是学校网站的一个子系统,具有很好的外部接口,能够很好的配合站点的其它子系统服务于网站的新闻发布 .该系统是一个 基于新闻发布和内容管理的全站 管理系统;基于 B/S 模式 WEBMIS 系统,本系统可以将杂乱无章的信息(包括文字、图片和影音)经过组织,合理而且有序地 呈现在大家面前。简单的说 ,新闻发布系统就是充当一个网络新闻媒介的功能。 主要实现对新闻的分类,审核,发布,模拟了一般新闻媒介的发布的过程 【 Abstract】 we embark
4、 from the station construction actual situation,pass through to a related website news issue item inspection and theanalysis, has established the news issue system concrete realizationfunction. And the elaboration system structural design and thefunctional design, realize the news classification to
5、demonstratethat, the recent news prompt, the news rolls the function and so on.After the authorized user may through the Web browser, by theman-machine interactive customer end procedure realization to theschool news issue, the management, real-time carry on the behaviorstatistics and the record. Th
6、is system is a school website sub-system, has the very good exterior connection, can the very goodcoordinate stand other subsystems serve the website news issue This system is based on the news issue and the content managemententire station management system management system; Based on B/S thepatter
7、n WEBMIS system, this system may the chaotic information(including writing, picture and video and music) the processorganization, reasonably has the foreword to present in front ofeverybody. Simple saying, the news issued the system is acts as a NetNews medium the function, the main realization to t
8、he newsclassification, the verification, the issue, has simulated the commonnews medium news issue process 前言 在 Internet 飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。 Internet上发布信息主要是通过网站来实现的,获取信息也是要在 Internet“ 海洋 ” 中按照一定的检索方式将所需要的信息从网站上下载下来。因 此网站建设在Internet 应用上的地位显而易见,它已成为政府、企事业单位信息化建
9、设中的重要组成部分,从而倍受人们的重视。 由于时间有限,加之信息系统开发经验的缺少和编程能力的有限,所以本系统难免存在各种各样的缺点。敬请指导老师能够提出批评和宝贵意见,也希望各位读者提出宝贵意见并进行指正,谢谢! 第一章 诸论 第一节 开发工具的选用及介绍 1. ASP 的优势: Active Server Pages: “ 动态服务器网页 ” ,一般简称为 “ASP” ,ASP 之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的 HTML 格式, 而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE 或 Netscape)都可以正确地获得 ASP 的 “ 执行 ”
10、 结果,并且将这 ASP 执行的结果直接在浏览器中 “ 浏览 ” ,不像 VBScript 或 JavaScript 是在客户端( Client)的浏览器上执行,若使用 VBScript 来设计程序,客户端( Client)在 IE 浏览器中可以显示程序 执行的结果,可 是,客户端( Client)若使用Netscape 浏览器就无法显示 VBScript 的执行结果。 2.ASP 的特点:任何开发工具皆可发展 ASP。只要使用一般的文书编辑程序,如 Windows 记事本,就可以编辑。当然,其他网页发展工具,例 如, FrontPage Express、 FrontPage 等也都可以;不过
11、还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写 ASP,可能会发生一些意想不到的离奇 状态。 3.通吃各家浏览由于 ASP程序是在网络服务器端中执行,执行结果所产生的 HTML文件适用于不同的浏览器。 4.语言相容性高: ASP 与所有的 ActiveX Script 语言都相容,除了可结合 HTML, VBScript、 Java Script、 Active X 服务器组件来设计外,并可经由“plug -In(外挂组件模组)的方式,使用其他厂商( Third Party)所提供的语言。 隐密安全性高。如果我们在浏览器中直接查看网页的原始代码,就只能看到 html
12、文件,原始的 ASP 程序代码是看不到 的!这是因杰 ASP 程序先于网站服务(eb Server)端执行后,将结果转换成标准 html 文 件,再传送到客户端( Client)的浏览器上,因此,我们所辛苦撰写的 ASP 程序并不会轻易地被看 见进而被盗用。 5.易于操控数据库: ASP 可以轻易地通过 ODBC(Open Database Connectivity)驱动程序连接各种不同的数据库,例如: Acess、 Foxpro、 dBase、Oracle 等等,另外, ASP 亦可将 “ 文本文 件 ” 或是 ”Excel” 文件当成数据库用。 6.面向对象学习容易: ASP 具备有面向对
13、象( Object-Oriented)功能,学习容易, ASP 提供了五种方便能力 强大的内建对 象: Request、 Response、 Sever、Application 以及 Session,同时,若使用 ASP 内建的 “Application” 对 象或 ”Session” 对象所撰写出来的 ASP 程序可以在多个网页之间暂时保存必要的信息。 ASP 的六大内部对象 Request、 Response、 Server、 Session、 Application、ObjectContext 从客户端取得信息将信息送给客户端提供一些 Web 服务器工具储存在一个 Session 内的用
14、户信息,该信息仅可被该用户访问在一 个 ASP- Application 中让不同的客户端共享信息可以用来配合 Microsoft Transaction 服务器进行分布式事务处理。 所以我选择了 ASP 结合 Frontpage 架构网站。在此期间本人将使用Macromedia Dreamweaver MX 2004 进行 ASP 页面的编码,并使用 IIS6.0 对页面进行调试。 第二节 ASP 技术访问 WEB 数据库 一访问 WEB 数据库的多种方案 目前在 WINDOWS 环境下有多种访问 WEB 数据库的技术,主要有: (1).公共网关接口 CGI(Common Gateway I
15、nterface) CGI 是较早实现的技术。适用于多种服务器平台,如 UNIX、 WINDOWS 等,但 CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。 (2). INTERNET 数据库连接器 IDC(Internet Database Connector)。 IDC 集成在 ISAPI(Internet Server API)中,充分利用了 DLL 技术,易扩充,但编程较 CGI 更为复杂,只适用于小型数据库系统。 (3). 先进数据库连接器 ADC(Advance Database Connector) ADC 提供了 ActiveX Control
16、来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。 (4). JAVA/JDBC 语言编程 JAVA 语言是一种面向对象、易移植、多线程控制的语言,可通过 JDBC 去连接数据库。用 JAVA/JDBC 编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。 (5). 动态服务器 页面 ASP(Active Server Page) ASP 是微软公司最新推出的 WEB 应用开发技术,着重于处理动态网页和 WEB 数据库的开发,编程灵活
17、、简洁,具有较高的性能,是目前访问 WEB 数据库的最佳选择。 二 ASP 简介 1.ASP 访问数据库的原理 ASP 是服务器端的脚本执行环境,可用来产生和执行动态的高性能的 WEB 服务器程序。 当 用户使用浏览器请求 ASP 主页时, WEB 服务器响应,调用 ASP 引擎来执行 ASP文件,并解释其中的脚本语言 (JScript 或 VBScript),通过 ODBC 连接数据库,由数据 库访问组件 ADO(ActiveX Data Objects)完成数据库操作,最后 ASP 生成包含有数据查询结果的 HTML 主页返回用户端显示。 由于 ASP 在服务器端运行,运行结果以 HTML
18、 主页形式返回用户浏览器,因而 ASP 源程序不会泄密,增加了系统的安全保密性。此外, ASP 是面向对象的脚本环境,用户可自行增加 ActiveX 组件来扩充其功能,拓展应用范围。 2.ASP 页面的结构: ASP 的程序代码简单、通用,文件名由 .asp 结尾, ASP 文件通常由四部分构成: (1) 标准的 HTML 标记:所有的 HTML 标记均可使用。 (2) ASP 语法命令:位于 标签内的 ASP 代码。 (3) 服务器端的 include 语句:可用 #include 语句调入其它 ASP 代码,增强了编程的灵活性。 (4) 脚本语言: ASP 自带 JScript 和 VBS
19、cript 两种脚本语言,增加了 ASP 的编程功能,用户也可安装其它脚本语言,如 Perl、 Rexx 等。 3.ASP 的运行环境 目前 ASP 可运行在三种环境下。 (1) WINDOWS NT server 4.0 运行 IIS 3.0(Internet Information Server)以上。 (2) WINDOWS NT workstation 4.0 运行 Peer Web Server 3.0 以上。 (3) WINDOWS 95/98 运行 PWS(Personal Web Server)。 其中以 NT server 上的 IIS 功能最强,提供了对 ASP 的全面支持
20、,是创建高速、稳定的 ASP 主页的最佳选择。 4.ASP 的内建对象 ASP 提供了六个内建对象,供用户直接调用: (1) Application 对象:负责管理所有会话信息,可用来在指定的应用程序的所有用户之间共享信息。 (2) Session 对象:存贮特定用户的会话信息,只被该用户访问,当用户在不同 WEB 页面跳转时, Session 中的变量在用户整个会话过程中一直保存。Session 对象需 cookie 支持。 (3) Request 对象:从用户端取得信息传递给服务器,是 ASP 读取用户输入的主要方法。 (4) Response 对象:服务器将输出内容发送到用户端。 (5)
21、 Server 对象:提供对服务器有关方法 和属性的访问。 (6) Object Context 对象: IIS 4.0 新增的对象,用来进行事务处理。此项功能需得到 MTS(Microsoft Transcation Server)管理的支持。 5. ASP 的主要内置组件: (1) Ad Rotator 组件:用来按指定计划在同一页上自动轮换显示广告,用于 WWW 上日益重要的广告服务。 (2) Browser Capabilities 组件:确定访问 WEB 站点的用户浏览器的功能数据,包括类型、性能、版本等。 (3) Database Access 组件:提供 ADO (ActiveX
22、 Data Objects)来访问支持ODBC 的数据库。 (4) File Access 组件:提供对服务器端文件的读写功能。 (5) Content Linking 组件:生成 WEB 页内容列表,并将各页顺序连接,用于制作导航条。 此外,还可安装 Myinfo、 Counters、 Content Rotator、 Page Count 等组件,用户也可自行编制 Actiive 组件,以提高系统的实用性。 6. Database Access 组件 ADO WWW 上很重要的应用 是访问 WEB 数据库,用 ASP 访问 WEB 数据库时,必须使用 ADO 组件, ADO 是 ASP 内
23、置的 ActiveX 服务器组件 (ActiveX Server Component),通过在 WEB 服务器上设置 ODBC 和 OLEDB 可连接多种数据库:如SYBASE、 ORACLE、 INFORMIX、 SQL SERVER、 ACCESS、 VFP 等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。 ADO 组件主要提供了以下七个对象和四个集合来访问数据库。 (1) Connection 对象:建立与后台数据库的连接。 (2) Command 对象:执行 SQL 指令,访问数据库。 (3) Parameters对象和 Parameters集合:为 Command对
24、象提供数据和参数。 (4) RecordSet 对象:存放访问数据库后的数据信息,是最经常使用的对象。 (5) Field 对象和 Field 集合:提供对 RecordSet 中当前记录的各个字段进行访问的功能。 (6) Property 对象和 Properties 集合:提供有关信息,供 Connection、Command、 RecordSet、 Field 对象使用。 (7) Error 对象和 Errors 集合:提供访问数据库时的错误信息。 第二章 系统分析与总体设计 很 多网站都提供新闻栏目,例如搜狐、新浪等著名网站的新闻专栏。许多企业和个人网站也需要定期发布一些关于企业或网站
25、的新闻。因为网络中新闻发布的频率非常 高,如果使用静态网页作为新闻页面,则维护工作将非常繁琐,管理员每天需要制作大量的网页,从而浪费很多时间和精力。使用新闻发布及管理系统可以使新闻发 布和管理变得很轻松,管理员只需设置标题、内容和图片等新闻就可以了,系统将自动生成对应的网页。本文将对新闻发布及 管理系统进行系统分析与总体设计。 第一节 系统功能描述 新闻发布及管理系统包括新闻类别管理、新闻发布管理、图片处理、新闻查询、网友评论和用户管理等模块。具体描述如下: 1新闻类别管理: (1)新闻类别的录入,包括类别编号和类别名称等信息; (2)新闻类别的修改; (3)新闻类别的删除; (4)新闻类别的
26、查询。 2新闻发布管理: (1)基本新闻信息的录入,包括新闻标题、新闻内容和所属类别等; (2)基本新闻信息的修改; (3)基本新闻信息的删除; 3图片处理模块: (1)选择图片文件; (2)上传图 片文件; (3)存储图片新闻; (4)修改新闻图片; (5)删除新闻图片; (6)在网页中浏览新闻图片。 4新闻查询模块: (1)按照新闻类别分页显示新闻; - (2)按照日期分页显示新闻。 5网友留言模块: (1)网友对某条新闻发表评论; (2)管理员可以删除新闻评论。 6系统用户管理功能: (1)系统用户信息的录入,包括用户名和密码等信息; (2)系统用户信息的修改; (3)系统用户信息的删除
27、。 第二节 系统功能模块划分 从功能描述的内容可以看到,本实例可以实现 6个完整的功能。我们根据这些 功能,设计出系统的功能模块,如图 1所示。 图 1 新闻发布及管理系统功能模块示意图 新闻发布及管理系统的功能模块之间的关系如图 2所示。 图 2 新闻发布及管理系统的功能模块关系图 在本系统中,用户管理模块的功能比较简单。在系统初始化时,有一个默认的 “ 系统管理员 ” 用户 Admin,由程序设计人员手动地添加到数据库中。 Admin 用户可以创建用户、修改和删除用户;普通用户则只能修改自己的用户名和密码。 用户管理功能模块的关系如图 3所示。 图 3 用户管理功能模块的关系图 第三节 系
28、统流程分析 为了使读者进一步了解本实例系统的设计,本小节将对系统进行流程分析。多用户系统的工作流程都是从用户登录模块开始,对用户的身份进行认证。身份认证可以分为以下两个过程: (1)确认用户是否是有效的系统用户。 (2)确定用户的类型。 第 1 个过程决定用户能否进入系统。第 2个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。 本系统分为前台系统和后台系统两个部分。前台系统不需要进行身份认证,任何人都可以通过浏览器阅读已经发布的新闻、发表网友评论。 后台系统的流程分析如图 4 所示。 Admin 用户拥有所有的权限 ,普通用户只能对自己发布的新闻进行管理,包括修改新闻内容、删除
29、新闻和删除网友评论。 图 4 后台系统的流程分析 第三章 数据库结构设计与实现 这一章将介绍系统的数据库表结构和创建表的脚本。 第一节 创建数据库 首先创建一个数据库 news,用来保存本系统的所有数据。创建数据库的脚本代码如下: CREATE DATABASE news GO 可以在 SQL 查询分析器中执行该语句,创建数据库。 第二节 数据库逻辑结构设计 本系统定义的数据库中包含以下 4 个表:新闻类别表: Category、新闻基本信息表: News、网友评论信息表: Discuss 和用户信息表: users。 下面分别介绍这些表的结构。 1新闻类别表 Category 新闻类别表 C
30、ategory 用来保存新闻类别数据,结构如表 1所示。 表 1 表 Category 的结构 编号 字段名称 数据结构 说明 1 CateId int 新闻类别编号 2 CateName varchar (50) 新闻类别名称 在设计数据库结构时,很多表都需要设计一个整型字段作为标识列,这几乎已经成为惯例,例 如表 Category 中的 CateId 字段。所谓标识列,就是可以 惟一标识一行记录的列,在表中不会存在两条标识列相同的记录。如果其他表需要引用表 Category 中的数据,则在表中添加一个 CateId 字段就可以 了。有的程序设计人员习惯于直接使用名称字段作为标识列,例如表
31、Category 中的CateName 字段。这样,如果修改 CateName 字段的值,就 需要同时修改其他所有表的相应字段的值,从而造成不必要的麻烦。在系统中, CateId 字段对于用户来说是透明的,用户感觉不到它的存在,也无法对其进行 修改。 2 基本新闻表 News 基本新闻表 News 用来保存网上新闻的基本信息,结构如表 2 所示。 表 2 表 News 的结构 编号 字段名称 数据结构 说明 1 Id int 新闻编号 2 Title varchar(100) 新闻标题 3 Content text 新闻内容 4 PostTime datetime 提交时间 5 Poster
32、varchar(50) 提交人 6 CateId int 新闻类别编号 7 Attpic bit 是否有图片标记 (0 没有; 1有 ) 8 Readcount int 阅读次数 在 SQL Server 2000 中,可以使用 char、 varchar 和 text 等 3种数据类型存储非 Unicode 字符数据。 char 和 varchar 只能存储最多 8000 个 字符,其中 char用于存储固定长度的字符数据, varchar 用于存储可变长度的字符数据。如果需要存储的数据很大 ,则可以使用 text 数据类型,例如 表 News 中的 Content 字符,因为新闻内容的数据
33、量通常会超过 8000 个字符。 text 数据类型也是可变长度的,最多可为 2147483647 个字 符。 3网友评论信息表 Discuss 网友评论信息表 Discuss 用来保存网友对新闻的评论信息,结构如表 3 所示。 表 3 表 Discuss 的结构 编号 字段名称 数据结构 说明 1 id int 评论编号 2 UserId varchar(20) 评论人名 称 3 Posttime sinaildatetime 提交时间 4 Content varchar(4000) 评论内容 5 Newsld int 新闻编号 在 SQL Server 2000 中,可以使用 dateti
34、me 和 smalldatetime 两种数据类型存储日期时间数据。 datetime 数据类型用于存储从 1753 年 1月 1 日到 9999 年12月 31 日的日期和时间数据,精确到 3 33ms; smalldatetime 数据类型用于存储从 1900 年 1月 1日到 2079 年 6月 6 日的日期和时间数据,精确到分钟。有些程序员习惯于使用 datetime 数据类型存储日期时间数据,其实在精确度要求不高的情况下,使用 smalldatetime 数据类型是足够了。 4用户信息表 Users 用户信息表 Users 用来保存用户的基本信息,结构如表 8 4 所示。 编号 字段名称 数据结构 说明 1 UserId int 用户 ID 号 。 2 UserName varchar(50) 用户名