本科毕业设计---基于web的学校新闻发布系统.doc
目录第一章 系统概述31.1 开发背景31.2 开发意义41.3 开发技术简介51.3.1 J2EE体系结构51.3.2 .Struts2框架技术61.3.3 .Hibernate框架技术7第二章 系统分析92.1 可行性分析92.2 需求分析102.2.1 功能需求102.2.2 性能需求102.2.3 数据流图112.2.4 数据字典12第三章 系统的总体设计163.1 功能模块划分163.1.1 系统功能模块图163.1.2 各功能模块描述173.2 数据库设计183.2.1 概念结构设计183.2.2 逻辑结构设计20第四章 系统详细设计234.1 程序流程图234.2 界面设计25第五章 系统实现29第六章 系统的调试与测试446.1 测试环境446.2 测试内容446.3 系统部分模块测试45课程设计心得体会47参考文献48第一章 系统概述1.1 开发背景 在当前社会,信息已成为一种隐型的财富,人们对信息的需求再也不是局限于单纯的电视、报纸等大众途径。随着Internet在中国的发展日新月异,人们在日常生活中也越来越多地使用这项新技术来为自己的工作和生活服务,人们通过网络来获取信息的需求越来越大。基于此种考虑,网络开发者们提出了一种“基于WEB的新闻发布系统”。基于此,我们学校也开发了基于Web的学校新闻发布系统。学校新闻发布系统(School News Release System or Content Management System)又叫做内容管理系统,是一个基于新闻和内容管理的全站管理系统,新闻发布系统是基于B/S模式的WEBMIS系统,本系统可以将杂乱无章的信息(包括文字,图片和影音)经过组织,合理有序地呈现在大家面前.当今社会是一个信息化的社会,新闻作为信息的一部分有着信息量大,类别繁多形式多样的特点,新闻发布系统的概念就此提出.新闻发布系统的提出使电视不再是唯一的新闻媒体,从此以后网络也充当了一个重要的新闻媒介的功能.手工制作发布的网页信息不但无法检索堆积如山的信息,而且每次更新内容并上传的时候都会使服务中断,导致用户无法访问而使形象和服务大打折扣。网站信息管理系统的出现大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网站的更新维护工作简化到只需录入文字和上传图片,从而使网站的更新速度大大缩短,在某些专门的网上新闻站点,如新浪的新闻中心等,新闻的更新速度已经缩短到五分钟一更新,从而大大加快了信息的传播速度,也吸引了更多的长期用户群,时时保持网站的活动力和影响力。本系统的信息管理系统主要是实现对信息内容的浏览和添加管理。 1.2 开发意义 伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,而随着Internet的进一步发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页。 网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前沿,清晰地听到了网络时代的宣言:谁掌握了网络,谁就掌握了未来。随着计算机技术的发展,网络技术对生活和工作也显得越来越重要,特别是现在信息高度发达的今天,人们对最新信息的需求和发布迫切的需要及时性。而动态交互式网页刚好提供了这些功能,本系统就是一个能够在网上实现新闻的网上多用户发布,多栏目管理,实时的进行行为统计和记录的网上交互系统。 HTML作为一种样式语言,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任的情况之下,在JSP编程语言高度发展的形式下,开始了对新闻发布更新系统的研发。1.3 开发技术简介 1.3.1 J2EE体系结构 J2EE Web程序服务器提供了方便编程的各种服务技术,这些技术是一般Web应用需要用到,但Web编程者不需要自己开发的,例如命名服务(Naming Service)、数据链接(JDBC)、安全服务(Security Service)等,在Web应用中一般通过调用现成的API来使用这些技术。 (1)命名技术(JNDI) J2EE命名服务提供应用构件(包括客户、EJB Beans、Servlet、JSP等)程序命名环境。JNDI API提供了Web构件进行标准目录操作的方法,譬如将对象属性和Java对象联系在一起,或者 通过对象属性来查找Java对象。由于JNDI已经被标准化,程序可以通过使用JNDI来访问其他通用的命名服务,包括常用的Web命名协议LDAP,NDS,DNS和NIS。这促进了J2EE Web程序与其他平台系统的整合。 (2)数据连接技术(JDBC)Java DataBase Connection(JDBC)API使J2EE平台和各种关系数据库之间连接起来。JDBC技术提供Java程序和数据库服务器之间的连接服务,同时他能保证数据事务的正常进行 。另外,JDBC提供了从Java程序内调用SQL数据检索语言的功能;J2EE平台使用JDBC 2.0以上的API以及JDBC 2.0拓展API,这些API提供了高级的数据连接功能5。 (3)安全技术J2EE提供了严密的安全措施,他保证程序资源只能被获准的用户来使用。这一般分为2步。首先是验证(Authentication),即个体必须由验证确定其身分。典型的做法是使用者提供验证数据(譬如用户名和密码)。其次是授权(Authorization)。当一位被验证通过的个体设法访问程序资源时,系统要根据安全策略确定是否该个体有权限进行这样的操作。J2EE的容器提供2种安全方法:声明性(Declarative)和程序性(Programmatic)。声明性安全技术指在程序之外设定安全机制的参数。也就是编程者在程序配置描述文件里指定如何使用安全技术。这一般是指在Web构件或EJB构件的程序里调用Java的安全技术API。由于声明性安全设定不需要改动程序源代码,在J2EE程序中,一般使用声明性安全技术比较简单。(4)Web服务技术 Web服务技术是通过互联网进行远程应用服务和计算的新技术,被称为新一代的Web应用技术。Web服务通过基于XML的开放标准使企业之间进行信息连接,企业使用基于XML的Web服务描述语言(WSDL)来描述他们的Web服务(比如银行转账、价格查询等);通过互联网,系统之间可以使用Web服务注册(如UDDI)来查找被登记的服务目录,这样就实现了真正在Inter net上的信息查询和交换。1.3.2 .Struts2框架技术Struts2最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。Struts22这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。Struts2只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts2实现的重点在C(Controller),包括ActionServlet/RequestProcessor和定制的 Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts2几乎没有涉及M(Model),所以Struts2可以采用JAVA实现的任何形式的商业逻辑。Struts2只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts2实现的重点在C(Controller),包括ActionServlet和定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts2几乎没有涉及M(Model),所以Struts2可以采用JAVA实现的任何形式的商业逻辑。Struts2是一个被认为比较好的MVC框架,它使整个程序结构清晰,易于维护和扩展8。Struts2跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。 除此之外,Struts2的优点主要集中体现在两个方面:Taglib和页面导航。 Taglib是Struts2的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自 己的标记,或许Struts2是一个很好的起点。关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。 1.3.3 .Hibernate框架技术Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。Hibernate同时也是ORM的一种实现 ,它也是目前在JAVA界使用非常广泛的ORM一种实现 ,可以实现关系型数据库和对象之间的映射。 Hibernate是一种Java语言下的对象关系映射解决方案。 它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL 的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。用来开发数据库系统非常方便。Hibernate 不仅管理Java 类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB(Enterprise JavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。4 .Spring框架Spring, Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。Spring AOP: 通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写 的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts2 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。Spring 框架的功能可以用在任何 J2EE 服务器中,Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象. 第二章 系统分析 2.1 可行性分析 1.经济可行性 要运行基于 WEB 的学校新闻发布系统,当然是必须添加一些网络及硬件设备,这也就必然比传统信息传播在物资设备方面要投入更多财力。从效益经济来看,运行这套在线新闻发布系统,不光可以省去许多信息传递时间,方便信息的存储,甚至在信息化的今天为信息及时更新,信息及时传达等带来不小的便利。与此同时还能大大的节省直至新闻传播的人力成本与资金成本。 综合上面论述,在线新闻发布系统的开发与设计在经济角度来说是利大于弊,是非常值得实施的。 2.技术可行性 随着网络技术的深入发展,一些网络办公系统,政府服务软件,在线聊天娱乐软件等等网络应用软件也成功开发并投入运营了,在社会中产生了不小的社会与经济效益。 HTML 作为一种样式语言,随着 Internet 在上信息量的增多和交互性的加强使 HTML 显得越来越难以胜任的情况之下, ASP编程语言高度发展的形式下,我们开始了对新闻发布系统的开发。运用现在软件 JSP业流行的技术成熟的 ASP等开发语言,以及高效率,易操作 eclipes等开发工具,再借鉴别人成功开发的宝贵经验,学校新闻发布系统是完全可以开发出来的。 3.操作可行性 该系统基于B/S模式,客户端只需安装Web浏览器即可访问系统,通过简单的操作界面,具有一般计算机知识的人员都可以轻松掌握使用方法。用户交互界面友好,简洁明了,能切实提高新闻管理系统的可操作性,几乎勿需人员培训。2.2 需求分析2.2.1 功能需求 通过相关调查,要求系统具有以下功能:(1)通过网络,展示各行业新闻及相关信息,主要显示内容为新闻标题,新闻内容,新闻类型,新闻详细类型,新闻发布日期;(2)提供新闻搜索功能,即通过选择新闻类型进行新闻的模糊搜索功能;(3)设置新闻人物投票功能,显示浏览者对该新闻的支持度,最终统计出投票数量;(4)支持其他网站的友情链接,通过显示网站的名称给浏览者提供快速查找类似的新闻的功能;(5)为后台管理提供管理入口,在首页设置管理员登陆入口,需要管理员输入管理员帐号与密码才能进入系统后台操作。(6)管理员进入后台后可对相应的新闻作条件查询,编辑和删除等操作。(7)总管理员除了普通管理员的权限外,还可对普通管理员信息进行查询,修改、删除等操作。2.2.2 性能需求 根据新闻系统的需求进行开发设计,主要实现如下目标: 界面设计友好、美观、数据要准确、安全、可靠。 强大查询功能,方便用户浏览网站的所有信息。 设计会员登陆功能,保证新闻留言的安全性。 实现对信息、比赛项目等信息的添加、修改、删除,便于更新网站内容。 系统最大限度地实现易维护性和易操作性。 操作的简易实用性本系统是新闻发布系统,针对的用户大多数是学生,教师等等。因此操作的简易实用性就体现的尤其重要。在此系统的开发中就很好的体现了这一点,系统的界面美观,典雅,充满了人性化;用户操作起来也容易上手。对于一个新闻发布系统而言新闻信息是很多的,而且使用人数较多,所以对系统的安全性有比较高的要求:对于数据库,要设置不同用户的权限,数据的修改必须由合法用户操作。 2.2.3 数据流图图2-1 顶层数据流图图2-2 一层数据流图图2-3 一层数据流图2.2.4 数据字典(1) 数据存储定义如下数据存储名称:管理员信息编号:D1输入:管理员登录名及密码 输出:查询、发布新闻信息数据结构:管理员名称+管理员编码+登录密码+登录日期说明:管理员信息由专人维护,维护系统不在本系统范围内数据存储名称:友情链接信息表编号:D2输入: 输出:友情连接到的的网站信息数据结构:数据ID+链接图片路径+链接的名称+链接地址+链接日期说明:帮助需要的读者链接到必要的网站,帮助他们找到适合的信息数据存储名称:新闻信息表编号:D3输入:新闻内容、发布时间等 输出:新闻内容、发布时间等数据结构:新闻编号+新闻类型编号+新闻标题+新闻内容+作者+发布时间 +浏览次数+是否有图片说明:新闻编号是唯一的数据存储名称:登录信息表编号:D4输入:登陆读者相关信息 输出:登陆记录数据结构:登录时间+登录人编号+登陆次数说明:便于系统的维护与管理数据存储名称:作者信息表编号:D5输入:新闻发布作者相关信息 输出:作者信息记录数据结构:作者编号+作者名称+投稿日期+作品类型编号说明:便于系统对作者信息的维护与管理数据存储名称:新闻类型表编号:D6输入:新闻分类 输出:各类新闻信息数据结构:新闻类型编号+作者编号+新闻类型名称说明:便于系统对新闻信息的维护与管理数据存储名称:浏览量统计表编号:D7输入:每月新闻阅读量的统计值 输出:新闻浏览量统计报表数据结构:浏览时间+浏览次数+新闻编号说明:便于系统对新闻信息的统计与管理数据存储名称:网友评论信息表编号:D8输入:网友评论的相关内容 输出:网友评论的统计报表数据结构:评论编号+评论人名称+评论时间+评论内容+新闻编号说明:便于系统对网友评论信息的维护与管理(2) 数据项定义 管理员记录数据项名称 类型 长度 注明管理员名称 字符型 20 限英文字符和汉字管理员编号 字符型 4唯一管理员密码 字符型 50 登录日期 日期型 20 限英文字符和汉字友情链接信息数据项名称 类型 长度 注明友情链接编号 字符型 50 唯一友情链接路径 字符型 50友情链接名称 字符型 50 友情链接网址 字符型 50友情链接时间 日期型 20 新闻信息数据项名称 类型 长度 注明新闻编号 字符型 50 唯一新闻类型编号 字符型 50 根据需求设定新闻标题 自定义 50新闻内容 自定义 500新闻作者 字符型 50发布时间 日期型 20浏览次数 数值型 500登录信息数据项名称 类型 长度 注明登陆时间 日期型 20 每一季度统计一次登陆人编号 字符型 4 登陆次数 数值型 200 作者信息数据项名称 类型 长度 注明作者编号 字符型 50 唯一作者名称 字符型 50 根据需求设定投稿日期 日期型 50作品类型编号 字符型 50新闻类型数据项名称 类型 长度 注明新闻类型编号 字符型 50 唯一作者编号 字符型 50新闻类型名称 字符串 20 浏览统计量数据项名称 类型 长度 注明浏览时间 日期型 50浏览次数 数值型 500新闻编号 字符型 50 网友评论数据项名称 类型 长度 注明评论人编号 字符型 6评论人名称 字符型 20评论时间 日期型 50评论内容 自定义 200新闻编号 字符型 50第三章 系统的总体设计3.1 功能模块划分3.1.1 系统功能模块图 从需求分析中可以看到,本实例可以实现6个完整的功能。我们根据这些功能,设计出系统的功能模块几个模块间的关系,如图3-1、3-2所示。学校新闻发布管理系统新闻类别管理新闻发布及管理图片处理模块新闻查询模块网友评论模块系统用户管理图3-1 新闻发布系统功能模块图 图3-2 新闻发布系统各模块关系图 3.1.2 各功能模块描述 学校新闻发布管理系统包括新闻类别管理、新闻发布管理、图片处理、新闻查询、网友评论和用户管理等模块。具体描述如下: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)系统用户信息的删除。3.2 数据库设计3.2.1 概念结构设计本系统涉及到得实体有:管理员、新闻、栏目等实体,各实体的E-R图如下。管理员实体E-R如下:图3-3 管理员E-R图新闻实体E-R图如下:图3-4 新闻实体E-R图栏目实体E-R图如下:图3-5栏目实体E-R图学校新闻发布管理系统E-R图如下:3.2.2 逻辑结构设计根据E-R图,可将其抽象为相应数据库的关系模式,则有: 管理员(用户名、密码 ) 新闻(新闻编号、新闻标题、新闻内容、所属栏目、发布时间) 栏目(栏目编号、栏目名称)3.2.3 物理结构设计 本系统定义的数据库中包含以下4个表:新闻类别表:Category、新闻基本信息表:News、网友评论信息表:Discuss和用户信息表:users。1新闻类别表Category表3.1 新闻类别表编号字段名称数据结构说明1CateIdint新闻类别编号2CateNamevarchar (50)新闻类别名称 2基本新闻表News用来保存网上新闻的基本信息 表3.2 基本新闻表编号 字段名称数据结构 说明1 Idint 新闻编号2 Titlevarchar(100) 新闻标题3 Contenttext新闻内容4 PostTimedatetime 提交时间5 Postervarchar(50) 提交人6 CateIdint 新闻类别编号7 Attpicbit是否有图片标记(0没有;1有)8 Readcountint 阅读次数 3网友评论信息表Discuss用来保存网友对新闻的评论信息表3.3网友评论信息表编号字段名称 数据结构 说明1 id int评论编号2UserId varchar(20)评论人名称3Posttimesinaildatetime提交时间4 Contentvarchar(4000)评论内容5 Newsld int新闻编号4用户信息表Users用来保存用户的基本信息 表3.4 用户信息表编号字段名称 数据结构 说明1 UserId int用户ID号 2 UserName varchar(50)用户名3 UserPwd varcahr(50)密码4 Ename varchar(50)用户姓名5 Email varchar(50)电子邮箱5.浏览量统计表Page View用来统计系统网页相关新闻的的浏览量 表3.5 浏览量统计表编号字段名称 数据结构 说明1 CateId int新闻类型ID号 2 id int新闻ID号3 Data data(50)发布时间4 Time varchar(20)浏览次数6. 作者信息表author用来保存作者信息 表3.6作者信息表编号字段名称 数据结构 说明1 CateId int新闻类型ID号 2 id int新闻ID号3 AuId int作者编号4 AuName varchar(50)作者名称5Datadata(20)投稿时间第四章 系统详细设计4.1 程序流程图 为了使读者进一步了解本实例系统的设计,本小节将对系统进行流程分析。多用户系统的工作流程都是从用户登录模块开始,对用户的身份进行认证.。 本系统分为前台系统和后台系统两个部分。前台系统不需要进行身份认证,任何人都可以通过浏览器阅读已经发布的新闻、发表网友评论。后台系统的各功能流程分析如图所示。图4-1 添加新闻类别程序流程图图4-2添加新闻流程图图4-3查询新闻程序流程图4.2 界面设计1. 通用模块的设计 本实例中包含一些通用模块,这些模块以文件的形式保存,可以在其他文件中使用#include语句包含这些模块,使用其中定义的功能。在添加和修改新闻内容时,需要对字体、字号、颜色和排列位置等属性进行设置。Template.asp可以实现这些功能。Template.asp的设计界面如图4-1所示。图4-1 Template.asp的设计界面 在使用template.asp时,设置指定的选项,将会在新闻内容中生成相应的HTML代码。2 主界面设计 本主界面为default.asp,它的功能是显示新闻类别和每个类别中的10条新闻,并提供进入管理界面(index.asp)的链接。 录入新闻类别和新闻内容后,default.asp的界面如图4-2所示。图4-2 default.asp的界面3 登陆界面设计 在对系统进行管理之前,需要通过系统的身份认证。本站中使用chkpwd.asp进行身份验证,其界面如图4-3所示:图4-3 登录界面4 新闻管理界面设计 管理界面的功能是对新闻类别和新闻提供管理界面,只有有权限的用户才能进入管理界面。图4-4 新闻管理界面打开新闻类别管理界面,如图4-5所示。图4-5 新闻类别管理界面5 新闻发布界面设计 系统用户都可以发布新闻,新闻发布管理模块包含以下功能: 添加新闻的运行界面如图4-6所示。图4-6 NewsAdd.asp的运行界面 新闻查询管理页面的脚本是search.asp,运行界面如图所示 图4-7 新闻查询界面第五章 系统实现 1.通用模块的实现 本实例中包含一些通用模块,这些模块以文件的形式保存,可以在其他文件中使用#include语句包含这些模块,使用其中定义的功能。ConnDB.asp ConnDB.asp的功能是实现到数据库的连接,因为在很多网页中都有连接数据库的操作,所以把它保存在文件ConnDB.asp中,这样可以避免重复编程。ConnDB.asp的代码如下:<%dim Conndim ConnStrset Conn=server.createobject("adodb.connection")ConnStr="driver=SQL Server;server=(local);UID=sa;PWD=yourpassword;Database=news"Conn.Open ConnStr%>在文件中引用此文件作为头文件就可以访问数据库,代码如下:<!-#include File="ConnDB.asp"->IsAdmin.asp 因为本实例中有些功能只有Admin用户才有权限使用,所以在进入这些网页之前,需要判断用户是否是Admin。IsAdmin.asp的功能是判断当前用户是否是Admin,如果不是,则中断执行;如果是,则不执行任何操作,直接进入包含它的网页。IsAdmin.asp的代码如下:<% If Session("UserName") <> "Admin" Then Response.Write("不是Admin用户,没有此权限") Response.End End If%>在文件中引用此文件作为头文件,代码如下:<!-#include File="IsAdmin.asp"->IsAuthor.asp 在修改和删除新闻时,除了Admin用户拥有所有权限外,其他用户只能修改自己创建的新闻。所以在修改和删除新闻时,需要判断当前用户是否是Admin或指定新闻的作者。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") <> Se