基于web的学校新闻发布系统.doc
《基于web的学校新闻发布系统.doc》由会员分享,可在线阅读,更多相关《基于web的学校新闻发布系统.doc(47页珍藏版)》请在冰豆网上搜索。
目录
第一章系统概述 3
1.1开发背景 3
1.2开发意义 4
1.3开发技术简介 5
1.3.1J2EE体系结构 5
1.3.2.Struts2框架技术 6
1.3.3.Hibernate框架技术 7
第二章系统分析 9
2.1可行性分析 9
2.2需求分析 10
2.2.1功能需求 10
2.2.2性能需求 10
2.2.3数据流图 11
2.2.4数据字典 12
第三章系统的总体设计 16
3.1功能模块划分 16
3.1.1系统功能模块图 16
3.1.2各功能模块描述 17
3.2数据库设计 18
3.2.1概念结构设计 18
3.2.2逻辑结构设计 20
第四章系统详细设计 23
4.1程序流程图 23
4.2界面设计 25
第五章系统实现 29
第六章系统的调试与测试 44
6.1测试环境 44
6.2测试内容 44
6.3系统部分模块测试 45
课程设计心得体会 47
参考文献 48
第一章系统概述
1.1开发背景
在当前社会,信息已成为一种隐型的财富,人们对信息的需求再也不是局限于单纯的电视、报纸等大众途径。
随着Internet在中国的发展日新月异,人们在日常生活中也越来越多地使用这项新技术来为自己的工作和生活服务,人们通过网络来获取信息的需求越来越大。
基于此种考虑,网络开发者们提出了一种“基于WEB的新闻发布系统”。
基于此,我们学校也开发了基于Web的学校新闻发布系统。
学校新闻发布系统(SchoolNewsReleaseSystemorContentManagementSystem)又叫做内容管理系统,是一个基于新闻和内容管理的全站管理系统,新闻发布系统是基于B/S模式的WEBMIS系统,本系统可以将杂乱无章的信息(包括文字,图片和影音)经过组织,合理有序地呈现在大家面前.当今社会是一个信息化的社会,新闻作为信息的一部分有着信息量大,类别繁多形式多样的特点,新闻发布系统的概念就此提出.新闻发布系统的提出使电视不再是唯一的新闻媒体,从此以后网络也充当了一个重要的新闻媒介的功能.手工制作发布的网页信息不但无法检索堆积如山的信息,而且每次更新内容并上传的时候都会使服务中断,导致用户无法访问而使形象和服务大打折扣。
网站信息管理系统的出现大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网站的更新维护工作简化到只需录入文字和上传图片,从而使网站的更新速度大大缩短,在某些专门的网上新闻站点,如新浪的新闻中心等,新闻的更新速度已经缩短到五分钟一更新,从而大大加快了信息的传播速度,也吸引了更多的长期用户群,时时保持网站的活动力和影响力。
本系统的信息管理系统主要是实现对信息内容的浏览和添加管理。
1.2开发意义
伴随着网络的出现,网页逐渐融入人们的生活。
快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,而随着Internet的进一步发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。
另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。
所以开发动态网页或动态内容成了越来越多的站点所追求目标。
所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页。
网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。
站在网络时代的前沿,清晰地听到了网络时代的宣言:
谁掌握了网络,谁就掌握了未来。
随着计算机技术的发展,网络技术对生活和工作也显得越来越重要,特别是现在信息高度发达的今天,人们对最新信息的需求和发布迫切的需要及时性。
而动态交互式网页刚好提供了这些功能,本系统就是一个能够在网上实现新闻的网上多用户发布,多栏目管理,实时的进行行为统计和记录的网上交互系统。
HTML作为一种样式语言,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任的情况之下,在JSP编程语言高度发展的形式下,开始了对新闻发布更新系统的研发。
1.3开发技术简介
1.3.1J2EE体系结构
J2EEWeb程序服务器提供了方便编程的各种服务技术,这些技术是一般Web应用需要用到,但Web编程者不需要自己开发的,例如命名服务(NamingService)、数据链接(JDBC)、安全服务(SecurityService)等,在Web应用中一般通过调用现成的API来使用这些技术。
(1)命名技术(JNDI)
J2EE命名服务提供应用构件(包括客户、EJBBeans、Servlet、JSP等)程序命名环境。
JNDIAPI提供了Web构件进行标准目录操作的方法,譬如将对象属性和Java对象联系在一起,或者通过对象属性来查找Java对象。
由于JNDI已经被标准化,程序可以通过使用JNDI来访问其他通用的命名服务,包括常用的Web命名协议LDAP,NDS,DNS和NIS。
这促进了J2EEWeb程序与其他平台系统的整合。
(2)数据连接技术(JDBC)
JavaDataBaseConnection(JDBC)API使J2EE平台和各种关系数据库之间连接起来。
JDBC技术提供Java程序和数据库服务器之间的连接服务,同时他能保证数据事务的正常进行。
另外,JDBC提供了从Java程序内调用SQL数据检索语言的功能;J2EE平台使用JDBC2.0以上的API以及JDBC2.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)来查找被登记的服务目录,这样就实现了真正在Internet上的信息查询和交换。
1.3.2.Struts2框架技术
Struts2最早是作为ApacheJakarta项目的组成部分问世运作。
项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准。
Struts22这个名字来源于在建筑和旧式飞机中使用的支持金属架。
它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。
Struts2只是一个MVC框架(Framework),用于快速开发JavaWeb应用。
Struts2实现的重点在C(Controller),包括ActionServlet/RequestProcessor和定制的Action,也为V(View)提供了一系列定制标签(CustomTag)。
但Struts2几乎没有涉及M(Model),所以Struts2可以采用JAVA实现的任何形式的商业逻辑。
Struts2只是一个MVC框架(Framework),用于快速开发JavaWeb应用。
Struts2实现的重点在C(Controller),包括ActionServlet和定制的Action,也为V(View)提供了一系列定制标签(CustomTag)。
但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(EnterpriseJavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。
4.Spring框架
Spring,Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。
Spring框架是一个分层架构,由7个定义良好的模块组成。
Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
每个模块的功能如下:
核心容器:
核心容器提供Spr