毕业设计新闻发布系统论文.doc
新闻发布系统摘 要我们从学校的实际情况出发,经过对在线新闻发布事项的一番考察和分析,在对新闻需求的分析基础上,确立了新闻发布系统的具体实现功能。并阐述系统的结构设计和功能设计,实现新闻的分类显示,最近新闻的提示,新闻滚动功能等。经过授权的用户可以通过Web浏览器,以人机交互式的客户端程序实现对新闻的发布、管理、实时的进行行为统计和记录。本系统具有很好的外部接口,能够很好的配合站点的其它子系统服务于新闻发布。关键字: 新闻显示 栏目管理 新闻发布 文件上传AbstractWe proceed from actual conditions of the school, through some investigation and analysing of the online news briefing item, on the basis of analysis on demand of the news , have established realizing the function concretly of the news briefing system. Explain systematic structural design and function are designed , realize the classification of the news shows, the suggestion of the news recently, news rolls function ,etc. Users authorized can pass Web browser, realize the issue , management , real-time counting and writing down the behavior to the news with the man-machine interactive customer end procedure . This system has very good outside interface , other subsystems that can well match the website serve news briefing.Key word: The news showing The column managing News briefing The file uploading目录摘 要1ABSTRACT2第一章 引言5第二章 系统设计方案的研究5第三章 ASP技术综述73.1 IIS与ASP的结合73.2 ASP的内部特点83.2.1 ASP内部6大特点83.2.2. Global文件83.3 利用ADO访问数据库93.3.1.创建数据源名103.3.2.创建数据库链接103.3.3.创建数据对象113.3.4.操作数据库113.3.5关闭数据对象和链接对象123.4 ASP与CGI的比较12第四章 系统的开发环境及需求144.1 开发目的144.2 项目背景144.3 开发环境144.3.1 硬件条件144.3.2 系统平台144.3.3 系统工具144.3.4 运行需求15第五章 系统的结构设计165.1数据库的搭建165.2系统数据库的结构设计165.3.建立与数据库的连接185.4系统模块说明19第六章 系统的功能设计206.1 前台新闻显示206.2 后台新闻管理20第七章 系统的功能说明217.1 前台显示说明217.2 后台管理员管理说明227.2 .1后台管理员登录227.3后台新闻管理247.3.1类型管理247.3.1.1大类管理277.3.1.2小类管理287.3.2新闻管理307.3.3友情链接管理357.3.4投票管理387.3.5上传文件管理38第八章 结论43致谢44附:参考文献44第一章 引言伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上又出现了第三媒体Internet。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。制作网页是企业和个人的宣传自己的重要手段,同时也是学习者获取学习信息的重要手段。尤其是在新闻信息领域,各种新闻信息的发布分秒变换,人们对新闻信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。所以网页也逐渐成为一种新兴的信息发布资源。也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。随着Internet的进一步发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页。网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言:谁掌握了网络,谁就掌握了未来。第二章 系统设计方案的研究ASP 全称为 Active Server Pages(动态服务器主页),它是一种应用程序环境,可以利用 VBscript 或 Java Script 语言来设计,主要用于网络数据库的查询与管理。其工作原理是当浏览者发出浏览请求的时候,服务器会自动将 ASP 的程序码,解释为标准 HTML 格式的网页内容,再送到浏览者浏览器上显示出来。我们也可以将 ASP 理解为一种特殊的 CGI。利用 ASP 生成的网页,与HTML相比具有更大的灵活性。只要结构合理,一个 ASP 页面就可以取代成千上万个网页。尽管 ASP 在工作效率方面较之一些新技术要差,但胜在简单、直观、易学,是涉足网络编程的一条捷径。它具备一个服务器端的脚本执行环境,用它可产生和执行动态的、交互的、高性能的Web服务器应用程序。Active Server的另一大优点是代码的安全性。页面的访问者所能看到的只是服务器方的处理结果。ASP文件可以用常规的文本编辑器编辑, ASP使用VBScript、javascript等脚本语言作为开发工具,镶嵌于HTML文本中,使用"<%>"将ASP的程序包含起来。当用户从浏览器向Web服务器提出请求时,Web服务器会自动将ASP的程序解释为标准的HTML格式的主页内容,用户端只要使用常规可执行HTML程序的浏览器,就可浏览ASP所设计的主页内容,因此与浏览器无关,并且保证了ASP的源程序代码不会外漏。ASP中包括五个内置的ActiveX服务器组件和五个内置的对象:Database Access component(数据库访问组件)、File Access component(文件访问组件)、Ad Rotator component(广告轮播器组件)、Content Linking component(内容链接组件)、Browser Capabilities component(浏览器信组件)以及Request(请求对象)、Server(服务器对象)、Session(会话对象)、Response(响应对象)、Application(应用程序对象)。在所有ASP组件中,最有用的是数据库访问组件,也称为ActiveX数据对象或ADO。在站点发布数据库将使用这个组件及其中包含的对象,以完成对ODBC数据源的读写。此外,ASP技术的另一个重要特点是,程序员可以利用Java、Visual Basic、 Visual C+等语言制作适应自己特殊需要的ActiveX服务器组件来扩充ASP的功能,使自己的动态网页几乎具有无限的扩充能力,这是传统的CGI程序所不及的。总而言之ASP具有学习快、设计快的特点,不需花许多时间即可学会和快速设计出WEB应用程序。ASP的源程序码在服务器端执行,代码保密性好。集成与HTML中,无需编译链接可直接执行,而且使用文本编辑器即可设计。第三章 ASP技术综述3.1 IIS与ASP的结合在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构(如图1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:1. 减少构建和维护成本2. 加快联机过程3. 应用软件集中在服务器端开发管理4. 前端可使用任何浏览器(IE、Netscape.)5. 后端可存取任何数据库 (SQL、Access.)6. 可使用任何脚本语言开发 (VBScript、JavaScript、PERL.)程序和计算逻辑前端浏览器ActiveX Server元件ActiveX Server元件后端数据库数据库服务器Microsoft IIS + ASP浏览器(图1)3.2 ASP的内部特点3.2.1 ASP内部6大特点ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表1所示:对象名称功能描述Request从客户端取得信息Response将信息送给客户端Server提供一些Web服务器工具Session储存在一个Session内的用户信息,该信息仅可被该用户访问Application在一个ASP-Application中让不同的客户端共享信息ObjectContext配合Microsoft Transaction服务器进行分布式事务处理(表1 ASP 内部6大对象及其功能)合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合。3.2.2. Global文件每一个以Active Server Pages为基础的应用程序都拥有一个Global.asa文件(ASA后缀名其实是Active Server Application的缩写),它位于每一个应用程序的基点目录之下。当Active Server Pages做下面两个动作时,Server便会去读Global.asa文件:.Web Server启动之后,一个应用程序目录中任一个ASP文件被提出第一个HTTP请求(Request)时。. 不具有任何Session的客户端向Server请求一个ASP文件时。前面已经提到Application和Session这两个ASP的内部对象。Application对象内的信息供所有正在执行该应用程序的用户分享,它创建于Web Server启动后一个应用程序中任一ASP文件被提出第一个HTTP请求时,结束于Server端停止运行。而Session对象仅属于一位用户,维持一个用户端的信息,其他用户无法访问,它创建于一个不具有Session的用户向Server请求一个ASP文件时,结束于该Session到期(即用户端超过某时间段没有向Server提出要求或刷新Web页面)或Abandon语句的调用。可见,Global.asa文件的调用与Application与Session这两个对象密切相关。事实上我们通常在Global。asa文件中写入以下内容: Application或Session的开始事件(Start-event)。 Application或Session的结束事件 (End-event)。这样,在一个Application或Session对象被创建或结束时,系统会自动完成Global.asa文件中写入的相应事件。值得注意的是,如果一个Application与一个Session同时开始,Active Server Pages会先处理Application的开始事件,而如果一个Application与一个Session同时结束,Active Server Pages则会先处理Session的结束事件。3.3 利用ADO访问数据库ADO(ActiveX Data Objects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(Server Component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:创建数据库源名(DSN)创建数据库链接(Connection)创建数据对象操作数据库关闭数据对象和链接每一步的做法如下:3.3.1.创建数据源名DSN(Date Source Name)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQL Server的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。3.3.2.创建数据库链接链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:set Conn=Server.createObject(“ADOBD.CONNECTION”)这条语句创建了链接对象Conn,接下来:connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")conn.Open connstr这条语句打开链接,用到了DSN,本例为“connstr”。以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。3.3.3.创建数据对象ADO中的数据对象通常保存的是查询结果。Record Set是ADO中最复杂的对象,有许多属性和方法。Record Set保存的是一行行的记录,并标有一个当前记录。以下是创建方法:Set Record Set=Conn.Execute(sqtStr)这条语句创建并打开了对象Record Set,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:rs=“SELECT * FROM shop_books”Set Record Set=mConn.Execute(rs)这条语句执行后,对象Record Set中就保存了表tab1中的所有记录。3.3.4.操作数据库我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:rs=“INSERT INTO tab1 VALUES(1,2)”mConn.Execute(rs)/执行插入操作3.3.5关闭数据对象和链接对象在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。Record Set.closeSet Record Set=Nothing/关闭创建的数据对象mConn.closeSet mConn=Nothing/关闭创建的链接对象。3.4 ASP与CGI的比较CGI(Common Gateway Interface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。我们现对二者进行比较。Active Server Pages开发Web应用程序的特点:1 完全嵌入HTML,与HTML、Script语言完美结合。2 无须手动编译和链接程序。3 面向对象,并可扩展ActiveX Server组件功能。4 使用脚本语言(JavaScript、VBScript或PERL)编写。5 存取数据库轻松容易(使用ADO组件)。6 可使用任何语言编写自己的ActiveX Server组件。7 无浏览器兼容问题。8 程序代码隐藏,客户端仅能看到ASP输出的HTML文件。9 缩短Web开发时间。相比之下,使用CGI开发Web应用程序具有以下缺点:1 不易与HTML文件集成。2 须使用其他较复杂的语言来开发CGI程序。3 程序开发时间较长。4 存取数据库不容易。5 每个CGI程序被不同用户执行时都得重新执行一次,并占去Server的一个端口(Port),降低Server效率。可见,ASP在数据库访问、与HTML的集成、提高服务器的效率等诸多方面都优于CGI,更适应Web应用程序开发的需要,因此本文选择了ASP作为个性化页面生成器的开发工具。第四章 系统的开发环境及需求4.1 开发目的随着计算机技术的发展,网络技术对我们生活和工作显得月来越重要,特别是现在信息高度发达的今天,人们对最新信息的需求和发布迫切的需要及时性。而动态交互式网页刚好提供了这些功能,本系统就是一个能够在实现新闻信息的网上发布,多栏目管理,实时的进行行为统计和记录(如投票)的网上交互系统。4.2 项目背景HTML作为一种样式语言,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任的情况之下,在ASP编程语言高度发展的形式下,我们开始了对新闻发布系统的开发。4.3 开发环境4.3.1 硬件条件服务器两台,一台为数据库服务器,一台为Web服务器;客户端计算机若干;网络通讯设备,主要包括交换机、网卡、集线器、MODEM 等。4.3.2 系统平台采用Browser/Server体系结构,服务器端采用Microsoft Windows NT4.0作为网络操作系统,Web服务器软件采用IIS3.0(Internet Information Server)。客户端软件,包括单机操作系统和浏览器软件,分别选用Windows 2000和Internet Explorer,数据库系统采用Microsoft Access有利于方便操作。4.3.3 系统工具系统平台基于Web的系统开发工具应使开发者使用各种各样的技术来创建动态的Web应用程序,并且应是一个可视化的工具。我们采用了DreamweaverMX进行开发,它是用来快速创建数据驱动Web应用程序的基于团队的开发环境,支持ASP,以ODBC连接数据库,脚本语言为简单易学的javascript或VBScript。4.3.4 运行需求正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据完好无损,对数据的精确度、时间特性、适应性等都有一定要求,要求系统运行时能够保证正确性、可靠性、高效性、完整性、易使用性、可维护性、可测试性、复用性、安全保密性、可移植性、互联性.第五章 系统的结构设计5.1数据库的搭建数据只有用数据库来管理才能有自动化管理的可能。数据的结构将影响整个管理机制的应用,而且一但建立以后要修改常会出现麻烦。所以一开始就要仔细慎重地搭建一个完整而合理的结构。Microsoft Access数据库相对其它的数据库来说要简单容易操作些,本新闻发布系统中的数据库文件就是Access类型的数据库,数据库news中共设计了八个表.分别为:Admin表,Announce表,Bigclass表,FirendSite表,News表,SmallClass表,Vote表,VoteSet表.5.2系统数据库的结构设计Admin表结构:字段名数据类型字段大小Id自动编号Username文本50PassWd文本50Announce表结构:字段名数据类型字段大小Id自动编号长整Title文本50Demo备注备注Time日期/时间Read Count数字Auth文本50Order文本50Bigclass表字段名数据类型字段大小BigclassID文本长整BigclassName文本50FirendSite表:字段名数据类型说明Id自动编号长整型Linktype文本站点类型Sitename文本站点名称Siteurl备注站点地址News表:字段名数据类型说明Newsid自动编号长整型Title文本值100Content备注Posttime日期时间Bigclssname文本值 50Smallclassname文本值 50Readcount数字整型Ispic是/否Sitepic备注SmallClass表:字段名数据类型说明Smallid自动编号长整型Smallclassname文本值 50Bigclassname文本值 50Vote表:字段名数据类型说明Voteid自动编号长整型Lid文本值 50Vname文本名称Vcount数字计算值Voteset表:字段名数据类型说明Votesetid自动编号长整型Check文本是否为多选1为多选,0为单选Votename文本投票项目名称以上是系统数据news中的八个表以及结构描述.5.3.建立与数据库的连接什么是ODBCODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。本文中个性化页面的实现便大量地用到了ODBC技术。什么是DSNDSN(Date Source Name)即数据源名称。表示将应用程序和其个数据库建立连接的信息集合。ODBC数据源管理器就是利用该信息来创建管理指向的数据库连接。DSN可以保存在文件或注册表中。建立ODBC连接,实际就是创建同数据源的连接,也就是创建DSN。一旦建立了一个数据库的ODBC连接,那么同该数据库的连接信息将被保存的DSN中,程序的运行必须通过DSN来进行。创建ODBC链接启动ODBC数据源管理器。在服务器上,进入Windows操作系统的控制面板,在“数据源(ODBC)图标上双击,版本不同图标可能不一样。不同操作系统的启动方法有所不同。双击“ODBC数据源管理器”对话框,会出现ODBC源管理器对话框(ODBC Data Sources Administrator Dialog box)。单击驱动程序标签,可以看到你的电脑上已经安装的ODBC数据库驱动程序。在下拉列表中寻找Microsoft Access Driver(*.mdb)项。5.4系统模块说明在线新闻发布系统前台新闻发布子系统后台新闻管理子系统新闻公告站内搜索站内统计在线调查类别管理公告管理新闻管理友情链接管理投票管理上传文件管理第六章 系统的功能设计6.1 前台新闻显示可以根据网站的需要,进行各种方式的插入,自动更新.如显示栏目导航,显示某栏目的最新N条新闻等. 使用新闻文章管理系统制作动态网页时,可在需要的地方插入相应的代码,即可以多种形式显示新闻 文章的栏目或内容。例如:一级栏目列表、二级栏目列表、栏目导航列表、某一栏目的最新新闻(文章)显示条数、某一栏目的热门文章可任意调整。该系统也可经后继开发,使之生成JS代码,在一个主机上维护新闻文章,在其他静态网页中插入代码后显示相应的新闻文章.6.2 后台新闻管理1. 新闻类别管理:增加,修改,删除类别,大类,小类的添加等2. 公告管理:公告列表的删除与修改,公告信息的发布3. 新闻信息的管理:新闻列表的修改与删除,新闻信息的添加.4. 链接信息管理:友情链接的添加,以及链接列表的修改与删除.5. 投票信息的管理:投票类型的修改,投票项目的添加与修改,以及投票统计结果的显示.6. 上传文件管理:在线编辑器上传文件,在后台管理系统中上传一些文章、上传图片等、在前台查询这些文章。第七章 系统的功能说明7.1 前台显示说明图7.1.1前台首页显示1. 首页的最顶部排列显示大类新闻,用户可以直接点击查看各项大类新闻里面的各项小类新闻,直到阅读每条详细信息。2. 中间部分设计是用来显示焦点新闻,推荐新闻,热点新闻等最新信息,后台可以控制3. 站内搜索进行站内新闻信息的检索,当站点的新闻信息容易达到一定的量后,要找到一条具体的信息是很困难的.所以设计了这个功能,又方便用户查询所需的新闻信息. 4. 设有管理员登陆入口,通地该入口登录,管理进行后台管理程序,对整个系统进行维护。5. 公告栏显示最新发布的各项新闻信息,进入二级目录还可以阅读更多信息。6. 在线投票,能实时客观的反应用户对系统的满意程序以及系统的不足.7.2 后台管理员管理说明7.2 .1后台管理员登录本系统是一套实时,多栏目管理,的新闻发布系统,管理为超级管理员,他可以能系统的所有管理信息进行管理: 管理员登录界面如下: 管理员登录的代码如下:<form method="POST" action="CHKLOGIN.ASP"> <table border="0" width="450" align=center bgcolor="#000000" cellspacing="2" cellpadding="6"> <!-DWLayoutTable-> <tr> <td height="65" colspan="3" align="center" bgcolor="#1B61A9"><font color="#ff9900"><b><font size="+1" color="#FFFFFF">新闻发布系统 V1.0后台管理</font></b></font></td> </tr> <tr> <td height="40" colspan="3" align="center" bgcolor="#91ADC7">管 理 员 登 陆</td> </tr> <tr> <td width="34" height="26"bgcolor="#91ADC7"></td> <td width="100%"bgcolor="#91ADC7"></td> <td width="1"bgcolor="#91ADC7"></td> </tr> <tr> <td height="99"bgcolor="#91ADC7"></td> <td align="center" valign="top" bgcolor="#91ADC7"> <table border="0" width="350" cellpadding="6"> <!-DWLayoutTable-> <tr> <td width="334" align="center">用户名: <input name="UserName" size="20" style="font-size: 9pt"> </td> <td width="30"></td> </tr> <tr> <td align="center">密码: <input type="password" name="Passwd" size="20" style="font-size: 9pt"> </td> <td></td> </tr> <tr> <td height="32" align="center" valign="top"> <p> <input type="submit" name="Submit" value="确定" class="buttonface"> <input type="reset" name="Submit2" value="重写" class="buttonface"> </p></td> <td></td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table></td> <td bgcolor="#91ADC7" ></td> </tr> <tr> <td height="37"bgcolor="#91ADC7"></td> <td bgcolor="#91ADC7"></td> <td bgcolor="#91ADC7"></td> </tr> </table></form></body></html>输入用户名和密码,单击确定按钮进行后台管理界面.7.3后台新闻管理图7.3.1后台管理首页7.3.1类型管理从管理首页的类别管理进去,可以进入类型列表界面。如下图所示:实现的代码如下:<%IF not(Session("UserName")="admin") THENresponse.redirect "login.asp"response.endEND IF%><!-#include file="connDB.asp"-><%dim sql,rsBigClass,rsSmallClass,ErrMsgset rsBigClass=server.CreateObject("adodb.recordset")rsBigClass.open "Select * From BigClass",conn,1,3%><html><head><title>栏目管理</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link href="./css/style.css" rel="stylesheet" type="text/css"><script language="JavaScript" type="text/JavaScript">function checkBig() if (document.form1.BigClassName.value="") alert("大类名称不能为空!"); document.form1.BigClassName.focus(); return false; function checkSmall() if (document.form2.BigClassName.value="") alert("请先添加大类名称!");document.form1.BigClassName.focus();return false; if (document.form2.SmallClassName.value="") alert("小类名称不能为空!");document.form2.SmallClassName.focus();return false; function ConfirmDelBig() if(confirm("确定要删除此文章大类吗?删除此大类同时将删除所包含的小类,并且不能恢复!") return true; else r