基于WEB新闻发布系统

基于WEB新闻发布系统[java毕业论文下载]

新闻发布及管理系统

【摘要】现在通过网络阅读新闻已经成为人们日常生活中的一部分。网易、搜狐等著名网站都开设有新闻专栏,每天发布大量新闻信息。因为每天发布的新闻的频率和数量都很大,如果使用静态页面制作新闻,维护工作将十分繁琐。系统管理员每天都要花费大量时间和精力制作网页。新闻发布及管理系统,就是可以帮助管理员减轻工作负担,动态发布新闻,可以简化新闻发布和管理工作,提高工作效率。

本系统主要从以下几个方面进行设计和开发:(1)新闻类别管理,包括新闻类别的录入、查询、修改和删除等;(2)新闻发布管理,包括新闻信息录入、修改和删除等;(3)图片处理,包括图片文件上传、存储、修改、删除和浏览等;(4)新闻查询,分为按照新闻类别和新闻发布时间两个查询子模块;(5)网友评论,包括评论发表和管理员删除两个子模块;(6)系统用户管理,包括添加用户、删除用户和修改信息3个子模块。

    【关键字】新闻  发布  管理

    Abstract:Nowdays reading news online has been part of everyday life.Some famous websites such as Sohu set up news column,They publish a great deal of news every day.Because they have to publish news everyday,the frequency was high and the amount was great.If they use static page to make news,there were many trifles in defending work.The managerial personnal of the system have to spend a lot of time and energy in making net page.Publishing news and management system can help them reduce workload,issue news dynamicly and simplify news publish and mannagement to improve work efficiency.

   The design and development of news publishing and management system covers the following aspects:

  • News category management,including recording inquiry,modification and caceling of news category.
  • News publishing management,including recording,modification and canceling of news.
  • Picture disposing,including sending,storing modifying,canceling and browsing of photographs and documents.
  • News inquiry can be divided into two sub-models;news category and the time of publishing news.
  • Netpals review,including making comments and calcelling from managerial personnel.
  • User management system,including adding users,canceling users and revising information.

     Key Words:News,Publish,Management

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

目  录

 

摘要………………………………………………………………………………1

  • 引言……………………………………………………………………4

第二章 系统开发工具概述……………………………………………………4

2.1 ASP的认识…………………………………………………………4

2.2 ASP的特点…………………………………………………………5
2.3 ASP的运行环境………………………………………………………6

2.4SQL Server2000简介………………………………………………7

第三章  开发环境及需求分析………………………………………………10

3.1、开发目的…………………………………………………………10

3.2、项目背景…………………………………………………………10

3.3、开发环境…………………………………………………………10

第四章   系统功能分析及模块设计……………………………………11

4.1系统功能描述………………………………………………………….11

4.2功能模块划分…………………………………………………………..11

4.3流程分析……………………………………………………………….12

第五章   数据库结构设计与实现………………………………………………..13

5.1创建数据库……………………………………………………………..13

5.2数据库逻辑结构设计……………………………………………………13

第六章  目录结构与通过用模块设计……………………………………………15

6.1目录结构………………………………………………………………..15

6.2通用模块……………………………………………………………….15

第七章  系统程序设计与实现…………………………………………………..22

7.1设计主界面……………………………………………………………..22

7.2登录程序设计……………………………………………………………27

7.3设计管理界面……………………………………………………………27

7.4新闻类别管理模块设计…………………………………………………34

7.5新闻发布管理模块设计…………………………………………………39

7.6新闻阅读查询模块设计…………………………………………………48

7.7新闻评论管理模块设计…………………………………………………58

第八章  系统测试与发布…………………………………………………………64

8.1程序调试…………………………………………………………………64

8.2IIS的安装与配置……………………………………………………….64

第九章  结论………………………………………………………………………69

致 谢………………………………………………………………………….70

参考文献………………………………………………………………………70

 

 

第一章  引 言

伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上又出现了第三媒体——Internet。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。制作网页是企业和个人的宣传自己的重要手段,同时也是学习者获取学习信息的重要手段。尤其是在教育领域,在素质教育与终身教育成为必然的今天,人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。所以网页也逐渐成为一种新兴的教育资源。也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。

随着Internet的进一步发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页。

网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言:谁掌握了网络,谁就掌握了未来。

 

第二章 系统开发工具概述

2.1 ASP的认识

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中,无需编译链接可直接执行,而且使用文本编辑器即可设计。

2.2 ASP的特点
ASP主要特点表现如下:

▲ 使用VBScript 、JavaScript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地开发网站的应用程序。这一点特别有利于熟悉VB的人,因为VBScript脚本语言直接来源于VB语言。
▲ ASP代码嵌入HTML文件中,无须编译就可在服务器端直接解释执行。
▲ 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。
▲ ASP程序运行环境与浏览器无关。ASP所使用的脚本语言 (VBScript 、JavaScript) 均在Web服务端执行。当客户端浏览器浏览ASP页时,服务器会将该网页文件解释并转化成标准的HTML文件发送到客户端浏览器,由于送出的是标准的HTML文件,所以不存在浏览器兼容问题。
▲ ASP以对象为基础,可以使用ActiveX控件继续扩充其功能。
▲ ASP的源程序由于只在服务器上运行,不会被传到客户端浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
▲ 利用ADO组件能轻松方便迅速实现对数据库的操作,缩短程序的开发时间。
    ASP 的奇妙之处真是不胜枚举,总之它是动态网页开发技术中最容易学习、灵活性最强的开发工具之一,并且它的功能强大。ASP可以方便地实现诸如用户信息收集、计数器、留言板、论坛、聊天室和电子商务功能。将ASP与数据库集成可以开发出功能强大的交互式动态网站。

当然它也存在一些缺点,比如运行速度比普通的HTML页面要慢,毕竟ASP程序放在服务器端,要由服务器解释并转化成标准的HTML页面,因此造成速度相应比较慢,不过目前随着服务器技术的进步和网络提速,这种速度上的影响是很小的。另外,有的网络操作系统不支持ASP或是支持效果不好,所以ASP程序最好放在Windows操作环境的Web服务器上运行。如果要运行在非Windows平台,例如Unix、Linux等,则要安装相应的ASP脚本解释引擎软件。

2.3 ASP的运行环境

ASP程序运行在支持ASP的Web服务器上,由于ASP与Windows操作系统都是微软的产品,所以安装Windows操作系统的Web服务器对ASP的支持是最好的,这种优良的支持表现在兼容性、稳定性、功能扩展、速度等方面。
对于Windows操作系统来说,其实就是利用其网络组件PWS或IIS来构建Web服务器。PWS(Personal Web Server)是Windows 98里的个人服务器组件,但是PWS管理功能弱,响应速度慢,并且一次与服务器连接的用户数不超过10个,当然现在一般不会用它来做服务器。通常单位要建立自己的Web服务器一般选择的操作系统是易上手易管理的Windows 2000 Server,或是微软最近推出的Windows 2003 Server。

2.4SQL Server2000简介

SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT
系统上专注于开发推广SQL Server 的Windows NT 版本Sybase 则较专注于SQL Server在UNIX 操作系统上的应用在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。

    SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用

2.5Javascript简介

Internet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式,打破了传统信息传播方式的重重壁垒,为我们带来了新的机遇。随着计算机和信息时代的到来,人类社会前进的脚步在逐渐加快,每一天都有新的事情发生,每一天都在创造着奇迹。随着Internet技术的突飞猛进,各行各业都在加入Internet的行业中来。无论从管理方面,还是从商业角度来看,Internet都可以带来无限生机。通过Internet,可以实现地区、集体乃至个人的连接,从而达到一种“统一的和谐”。那么怎样把自己的或公司的信息资源加入到WWW 服务器,是广大用户日益关心的问题。采用超链技术(超文本和超媒体技术)是实现这个目标最简单的、最快速的手段和途径。具体实现这种手段的支持环境,那就是HTML超文本标识语言。通过它们可制作所需的Web网页。
  通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能将各种信息组织成网络结构(web),构成网络文档(Document),实现Internet上的“漫游”。通过HTML符号的描述就可以实现文字、表格、声音、图像、动画等多媒体信息的检索。
  然而采用这种超链技术存在有一定的缺陷,那就是它只能提供一种静态的信息资源,缺少动态的客户端与服务器端的交互。虽然可通过CGI(Common Gateway Interface)通用网关接口实现一定的交互,但由于该方法编程较为复杂,因而在一段时间防碍了Internet技术的发展。而JavaScript的出现,无凝为Internet网上用户带来了一线生机。可以这样说,JavaScript的出现是时代的需求,是当今的信息时代造就了JavaScript。
  JavaScript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息,并对客户操作进行反应的Web页面的取代。JavaScript脚本正是满足这种需求而产生的语言。它深受广泛用户的喜爱的欢迎。它是众多脚本语言中较为优秀的一种,它与WWW的结合有效地实现了网络计算和网络计算机的蓝图。无凝Java家族将占领Internet网络的主导地位。因此,尽快掌握JavaScript脚本语言编程方法是我国广大用户日益关心的。

 JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个基本特点:

   脚本编写语言

   JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。

它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。

基于对象的语言

JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

简单性

JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。

安全性

JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。

动态性

JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。

跨平台性

JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。

实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情。

综合所述JavaScript 是一种新的描述语言,它可以被箝入到 HTML 的文件之中。 JavaScript语言可以做到回应使用者的需求事件 (如: form 的输入) ,而不用任何的网路来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给伺服端 (server)处理,再传回来的过程,而直接可以被客户端 (client) 的应用程式所处理。

JavaScript 和 Java 很类似,但到底并不一样! Java 是一种比 JavaScript 更复杂许多的程式语言,而 JavaScript 则是相当容易了解的语言。JavaScript 创作者可以不那麽注重程式技巧,所以许多 Java 的特性在 Java Script 中并不支援。

 

第三章  开发环境及需求分析

3.1、开发目的

随着计算机技术的发展,网络技术对我们生活和工作显得月来越重要,特别是现在信息高度发达的今天,人们对最新信息的需求和发布迫切的需要及时性。而动态交互式网页刚好提供了这些功能,本系统就是一个能够在网上实现新闻的网上多用户发布,多栏目管理,实时的进行行为统计和记录的网上交互系统。

3.2、项目背景

HTML作为一种样式语言,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任的情况之下,在ASP编程语言高度发展的形式下,我们开始了对新闻发布系统的开发。

3.3、开发环境

  • 硬件条件

服务器两台,一台为数据库服务器,一台为Web服务器;客户端计算机若干;网络通讯设备,主要包括交换机、网卡、集线器、MODEM 等。

  • 系统平台

采用Browser/Server体系结构,服务器端采用Microsoft Windows NT4.0作为网络操作系统,Web服务器软件采用IIS5.0(Internet Information Server)。客户端软件,包括单机操作系统和浏览器软件,分别选用Windows 2000和Internet Explorer,数据库系统采用SQL Server2000有利于方便操作。

  • 开发工具

基于Web的系统开发工具应使开发者使用各种各样的技术来创建动态的Web应用程序,并且应是一个可视化的工具。我们采用了DreamweaverMX进行开发,它是用来快速创建数据驱动Web应用程序的基于团队的开发环境,支持ASP,以ODBC连接数据库,脚本语言为简单易学的JavaScript。

  • 运行需求

正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据完好无损,对数据的精确度、时间特性、适应性等都有一定要求,要求系统运行时能够保证正确性、可靠性、高效性、完整性、易使用性、可维护性、可测试性、复用性、安全保密性、可移植性、互联性。

 

第四章   系统功能分析及模块设计

4.1系统功能描述

新闻发布及管理系统主要从以下几个方面进行设计和开发:(1)新闻类别管理,包括新闻类别的录入、查询、修改和删除等;(2)新闻发布管理,包括新闻信息录入、修改和删除等;(3)图片处理,包括图片文件上传、存储、修改、删除和浏览等;(4)新闻查询,分为按照新闻类别和新闻发布时间两个查询子模块;(5)网友评论,包括评论发表和管理员删除两个子模块;(6)系统用户管理,包括添加用户、删除用户和修改信息3个子模块。各模块的功能如下图1所示:

 

 

 

 

 

 

 

 

                      图1  新闻发布及管理系统功能模块图

4.2功能模块划分

本系统中功能模块之间的关系如图2所示。在系统系统初始化时,有一个默认的系统管理员用户Admin,系统管理员除了可以修改Admin用户的密码,还可以创建、修改和删除普通用户,普通用户只能修改自己的用户名和密码。用户管理功能模块的关系,如图3所示。

              图2   新闻发布及管理系统功能模块关系图

 

 

             Admin用户

图3  用户管理功能模块图

4.3流程分析

多用户系统一般都是从用户登录模块开始。用户身份验证可以分为两个阶段:首先对用户身份进行认证,确认用户是否是有效的系统用户;进而确认用户类型,即验证用户是管理员用户还是普通用户。

    前一阶段决定用户能否进入系统;后一阶段根据用户类型决定用户的权限,以及用户的工作界面。

 本系统的前台部分不需要进行身份验证,任何人都可以游览已发布的新闻并发表评论。后台部分需要进行身份验证,Admin用户拥有所有权限,普通用户只能管理自己的新闻,包括修改、删除新闻和删除网友评论。后台系统的流程分析如图4所示。

 

                      重试

                            图4   后台系统流程分析图

 

第五章   数据库结构设计与实现

5.1创建数据库

本系统使用的是SQL Server2000作为系统数据库。首先用户创建一个名为news的数据库,保存新闻发布及管理系统的所有数据。可以在SQL Server的企业管理器中直接创建,也可以在SQL Server的查询分析器中执行以下脚本,创建数据库。

       CREATE DATABASE news

       GO

5.2数据库逻辑结构设计

本系统包含新闻类别表Category、新闻信息表News、网友评论表Discuss和用户表Users四个表。本节将介绍这些表的结构。

  • 新闻类别表Category

   新闻类别表用来保存新闻类别数据,其结构如表1所示。

                     表1    Category表

字段名

字段类型

字段长

说明

CateId

int

4

 

CateName

varchar

50

 

 

  • 新闻信息表News

新闻信息表用来保存新闻的基本信息,如新闻标题、内容、发布时间等,具体结构如表2所示。

                          表2   News表

字段名

字段类型

字段长

说明

Id

int

4

新闻编号,系统自动编号

Title

varchar

100

新闻标题

Content

Text

16

新闻内容

PostTime

Datetime

8

提交时间

Poster

Varchar

50

提交人

CateId

Int

4

新闻类别编号

Attpic

Bit

4

是否有图片:0:没有;1:有

Readcount

int

4

阅读次数

 

  • 网友评论表Discuss

该表用来保存网友对新闻发表的评论,Discuss表的结构如表3所示。

                             表3   Discuss表

字段名

字段类型

字段长

说明

Id

int

4

评论文章编号,系统自动生成

UserId

varchar

20

评论人

Posttime

smaaldatetime

4

提交时间

content

varchar

4000

评论内容

NewsId

Int

4

新闻编号

在Discuss表中使用了Smalldatetime数据类型存储日期时间数据,该类型可以存储从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟;datetime类型可以存储从1753年1月1日到9999年12月31日的日期和时间数据,精确到3.33ms。在精确度要求不高的情况下使用smalldatetime数据类型就足够了。

 

  • 用户表Users

Users用来保存用户的基本信息,如表4所示。

                              表4   Users表

字段名

字段类型

字段长

说明

UserId

int

4

用户ID,系统自动编号

UserName

varchar

50

用户名

UserPwd

varchar

50

密码

Ename

varchar

50

用户姓名

Email

varchar

50

电子邮箱

 

 

第六章  目录结构与通过用模块设计

    本小节将介绍新闻发布管理系统的目录结构和一些通过模块

6.1目录结构

本系统中的所有ASP文件都保存在主目录下,主目录名由用户决定。此外,在主目录下还包含两个子目录:

  • 存储上传的新闻图片。
  • 存储网页中的图片文件。

6.2通用模块

新闻发布系统中还包含一些通过学习用模块。用户可以在其他文件中直接使用#include语句包含这些模块,使用其定义的功能。

  • ConnDB.asp文件

ConnDB.asp文件的主要功能是连接数据库,其内容如下:

dim Conn

dim ConnStr

    set Conn=server.createobject("adodb.connection")

    ConnStr="DRIVER={SQL Server};Server=(local);UID=sa;PWD=ustb;Database=news"

Conn.Open ConnStr

%>

  • IsAdmin.asp文件

IsAdmin.asp文件包含的功能是判断用户是否是Admin用户。如果是,则进入包含它的网页;如果不是,则中断执行。使用时,用户只需在所有只有Admin用户才有权执行操作的网页中,使用#include包含该文件。IsAdmin.asp代码如下:

<%

  If Session("UserName") <> "Admin" Then

    Response.Write("不是Admin用户,没有此权限")

    Response.End

  End If

%>

  • IsAuthor.asp文件

在修改、删除新闻时,要判断当前用户是否为Admin用户或者发表新闻的作者。IsAuthor.asp完成该功能。如果当前用户是Admin,则不做任何操作。如果不是Admin,程序将根据Id参数读取新闻,并将Poster字段的值和Session中的当前用户进行比较。如果指定新闻不存在或当前用户不是指定新闻的作者,IsAuthor.asp文件将中断程序执行。IsAuthor.asp代码如下:

<%

  If Session("UserName") <> "Admin" Then

    NewsId = Request("Id")

    '根据新闻编号读取新闻信息

    set rsNews = Server.CreateObject("ADODB.RecordSet")

    sql = "SELECT * FROM News WHERE Id=" & Trim(NewsId)

    set rsNews = Conn.Execute(sql)

    Set Rs=conn.Execute(sql)

    If rsNews.EOF Then

      Response.Write "指定新闻不存在"

      Response.End      

    Else

      '判断用户权限,是否可以维护新闻,管理员可以编辑所有新闻,编辑者只能修改自己的新闻

      If rsNews("Poster") <> Session("UserName") Then

        Response.Write "不是Admin或新闻的作者,无权修改!"

        Response.End      

      End If

    End If

  End If

%>

  • template.asp文件

template.asp文件的功能是修改新闻的字体、字号、颜色和排列位置等属性。template.asp文件的界面如图5所示。

 

template.asp文件的内容如下:

字体 

  <SELECT onChange="var c=this.options[this.selectedIndex].value;

if(selection.createRange().text!='')

{selection.createRange().text='<font[space]face='+c+'>'+selection.createRange().text+'</font>'}

else

  {myform.txtcontent.value =

'<font[space]face='+c+'>'+myform.txtcontent.value+'</font>'}"  name=font style='FONT-SIZE: 9pt'>

    <option value="宋体" selected>宋体</option>

    <option value="楷体_GB2312">楷体</option>

    <option value="新宋体">新宋体</option>

    <option value="黑体">黑体</option>

    <option value="隶书">隶书</option>

    <option value="Andale Mono">Andale Mono</option>

    <option value="Arial">Arial</option>

    <option value="Arial Black">Arial Black</option>

    <option value="Book Antiqua">Book Antiqua</option>

    <option value="Century Gothic">Century Gothic</option>

    <option value="Comic Sans MS">Comic Sans MS</option>

    <option value="Courier New">Courier New</option>

    <option value="Georgia">Georgia</option>

    <option value="Impact">Impact</option>

    <option value="Tahoma">Tahoma</option>

    <option value="Times New Roman">Times New Roman</option>

    <option value="Trebuchet MS">Trebuchet MS</option>

    <option value="Script MT Bold">Script MT Bold</option>

    <option value="Stencil">Stencil</option>

    <option value="Verdana">Verdana</option>

    <option value="Lucida Console">Lucida Console</option>

  </SELECT>

……

template.asp文件的下拉菜单中,定义了系统支持的字体名称。根据下拉菜单中的选定值的不同,有对应的JavaScript代码。This表示下拉菜单,this.selectedIndex表示当前选择的菜单项目。      This.option[this.selectIndex].value表示选择下拉菜单的值,保存在变量“C”中。

Selection.createRange().text表示当前选择字符的内容。如果不为空,则在两侧添加字体标示 < font>和</font>。

  在添加、修改新闻内容的网页中,必须将表单定义为myform,新闻内容的多行文本框必须定义为txtcontent。在其他文件中需要显示控制模板的位置使用#include引用此文件。

    5、Upload_5xsoft.inc文件

    Upload_5xsoft.inc文件的功能是从客户端上传文件到服务器指定目录,实现无组件上传。Upload_5xsoft.inc文件包含2个类;Upload_5xsoft.int和FileInfo。在类Upload_5xsoft初始化时,程序从上传表单中读取文件信息,类Upload_5xsoft中的Class_initialize方法用于实现这一功能。类FileInfo的主要功能是取得文件信息。Upload_5xsoft文件代码如下:

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>

dim Data_5xsoft

Class upload_5xsoft

 dim objForm,objFile,Version

Public function Form(strForm)

   strForm=lcase(strForm)

   if not objForm.exists(strForm) then

     Form=""

   else

     Form=objForm(strForm)

   end if

 end function

Public function File(strFile)

   strFile=lcase(strFile)

   if not objFile.exists(strFile) then

     set File=new FileInfo

   else

     set File=objFile(strFile)

   end if

 end function

Private Sub Class_Initialize

  dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile

  dim iFileSize,sFilePath,sFileType,sFormValue,sFileName

  dim iFindStart,iFindEnd

  dim iFormStart,iFormEnd,sFormName

  Version="化境HTTP上传程序 Version 2.0"

  '定义Dictionary对象

  set objForm=Server.CreateObject("Scripting.Dictionary")

  set objFile=Server.CreateObject("Scripting.Dictionary")

  '如果字节数小于1,则退出

  if Request.TotalBytes<1 then Exit Sub

  '定义Stream对象

  set tStream = Server.CreateObject("adodb.stream")

  set Data_5xsoft = Server.CreateObject("adodb.stream")

  '设置属性值

  Data_5xsoft.Type = 1

  Data_5xsoft.Mode =3

  Data_5xsoft.Open

  Data_5xsoft.Write  Request.BinaryRead(Request.TotalBytes)

  Data_5xsoft.Position=0

  '读取数据

  RequestData =Data_5xsoft.Read

  '使用循环语句,依次读取文件数据

  iFormStart = 1

  iFormEnd = LenB(RequestData)

  vbCrlf = chrB(13) & chrB(10)

  sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)

  iStart = LenB (sStart)

  iFormStart=iFormStart+iStart+1

  while (iFormStart + 10) < iFormEnd

    iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3

    tStream.Type = 1

    tStream.Mode =3

    tStream.Open

    Data_5xsoft.Position = iFormStart

    Data_5xsoft.CopyTo tStream,iInfoEnd-iFormStart

    tStream.Position = 0

    tStream.Type = 2

    tStream.Charset ="gb2312"

    sInfo = tStream.ReadText

    tStream.Close

    '取得表单项目名称

    iFormStart = InStrB(iInfoEnd,RequestData,sStart)

    iFindStart = InStr(22,sInfo,"name=""",1)+6

    iFindEnd = InStr(iFindStart,sInfo,"""",1)

    sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))

    '如果是文件

    if InStr (45,sInfo,"filename=""",1) > 0 then

      set theFile=new FileInfo

      '取得文件名

      iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10

      iFindEnd = InStr(iFindStart,sInfo,"""",1)

      sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)

      theFile.FileName=getFileName(sFileName)

      theFile.FilePath=getFilePath(sFileName)

      '取得文件类型

      iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14

      iFindEnd = InStr(iFindStart,sInfo,vbCr)

      theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)

      theFile.FileStart =iInfoEnd

      theFile.FileSize = iFormStart -iInfoEnd -3

      theFile.FormName=sFormName

      if not objFile.Exists(sFormName) then

        objFile.add sFormName,theFile

      end if

      else

      '如果是表单项目

      tStream.Type =1

      tStream.Mode =3

      tStream.Open

      Data_5xsoft.Position = iInfoEnd

      Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3

      tStream.Position = 0

      tStream.Type = 2

      tStream.Charset ="gb2312"

      sFormValue = tStream.ReadText

      tStream.Close

      if objForm.Exists(sFormName) then

        objForm(sFormName)=objForm(sFormName)&", "&sFormValue   

      else

        objForm.Add sFormName,sFormValue

      end if

    end if

    iFormStart=iFormStart+iStart+1

  wend

  RequestData=""

  set tStream =nothing

End Sub

 

Private Sub Class_Terminate  

 if Request.TotalBytes>0 then

objForm.RemoveAll

objFile.RemoveAll

set objForm=nothing

set objFile=nothing

Data_5xsoft.Close

set Data_5xsoft =nothing

 end if

End Sub

   

 

 Private function GetFilePath(FullPath)

  If FullPath <> "" Then

   GetFilePath = left(FullPath,InStrRev(FullPath, "\"))

  Else

   GetFilePath = ""

  End If

 End  function

 

 Private function GetFileName(FullPath)

  If FullPath <> "" Then

   GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)

  Else

   GetFileName = ""

  End If

 End  function

End Class

 

Class FileInfo

  dim FormName,FileName,FilePath,FileSize,FileType,FileStart

  Private Sub Class_Initialize

    FileName = ""

    FilePath = ""

    FileSize = 0

    FileStart= 0

    FormName = ""

    FileType = ""

  End Sub

  

 Public function SaveAs(FullPath)

    dim dr,ErrorChar,i

    SaveAs=true

    if trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function

    set dr=CreateObject("Adodb.Stream")

    dr.Mode=3

    dr.Type=1

    dr.Open

    Data_5xsoft.position=FileStart

    Data_5xsoft.copyto dr,FileSize

    dr.SaveToFile FullPath,2

    dr.Close

    set dr=nothing

    SaveAs=false

  end function

  End Class

</SCRIPT>

 

第七章  系统程序设计与实现

7.1设计主界面

本系统的主界面为default.asp,显示新闻类别和每个类别中的前5条新闻,并提供进入管理界面的“新闻管理”链接和查询界面的“新闻查询”链接。系统主界面如图6所示。

 

基于WEB新闻发布系统[点击下载]

如需要全部源码,联系QQ:2812491287如需要全部源码,联系QQ:2812491287

评论