当前位置:文档之家› 基于web的学校新闻发布系统

基于web的学校新闻发布系统

基于web的学校新闻发布系统
基于web的学校新闻发布系统

目录

第一章系统概述 (1)

1.1 开发背景 (1)

1.2 开发意义 (2)

1.3 开发技术简介 (3)

1.3.1 J2EE体系结构 (3)

1.3.2 .Struts2框架技术 (4)

1.3.3 .Hibernate框架技术 (5)

第二章系统分析 (7)

2.1 可行性分析 (7)

2.2 需求分析 (8)

2.2.1 功能需求 (8)

2.2.2 性能需求 (8)

2.2.3 数据流图 (9)

2.2.4 数据字典 (10)

第三章系统的总体设计 (14)

3.1 功能模块划分 (14)

3.1.1 系统功能模块图 (14)

3.1.2 各功能模块描述 (15)

3.2 数据库设计 (16)

3.2.1 概念结构设计 (16)

3.2.2 逻辑结构设计 (17)

第四章系统详细设计 (20)

4.1 程序流程图 (20)

4.2 界面设计 (22)

第五章系统实现 (26)

第六章系统的调试与测试 (41)

6.1 测试环境 (41)

6.2 测试内容 (41)

6.3 系统部分模块测试 (42)

课程设计心得体会 (44)

参考文献 (45)

第一章系统概述

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 新闻类别表

编号字段名称数据结构说明

1 CateId int 新闻类别编号

2 CateName varchar (50) 新闻类别名称

2.基本新闻表News用来保存网上新闻的基本信息

表3.2 基本新闻表

编号字段名称数据结构说明

1 Id int 新闻编号

2 Title varchar(100) 新闻标题

3 Content text 新闻内容

4 PostTime datetime 提交时间

5 Poster varchar(50) 提交人

6 CateId int 新闻类别编号

7 Attpic bit 是否有图片标记(0没有;1有)

8 Readcount int 阅读次数

3.网友评论信息表Discuss用来保存网友对新闻的评论信息

表3.3网友评论信息表

编号字段名称数据结构说明

1 id int 评论编号

2 UserId varchar(20) 评论人名称

3 Posttime sinaildatetime 提交时间

4 Content varchar(4000) 评论内容

5 Newsld int 新闻编号

4.用户信息表Users用来保存用户的基本信息

相关主题
文本预览
相关文档 最新文档