新闻发布系统的设计与实现.docx
《新闻发布系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《新闻发布系统的设计与实现.docx(35页珍藏版)》请在冰豆网上搜索。
新闻发布系统的设计与实现
第1章绪论
近年来,随着社会的不断进步,全球经济的蓬勃发展,计算机科学已经成为最活跃的学科领域,计算机本身也在各行各业中得到极大的普及,它所带来的方便和快捷使得我们的生活更加丰富多彩,而随之应运而生的满足各种普通用户需求的软件系统就更显其角色的重要性。
利用计算机完成订票管理势在必行。
该软件可以减少企业人力的浪费,为企业的管理带来极大的方便。
通过使用该系统更容易实现对客户,票务等信息的管理,通过计算机来查看票务的情况,使客户方便的同时也使企业节省了很多的人力资源,从而提高企业的经济效益。
1.1课题研究的背景
伴随着网络的出现,网页逐渐融入人们的生活。
快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上又出现了第三媒体——Internet。
它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。
制作网页是企业和个人的宣传自己的重要手段,同时也是学习者获取学习信息的重要手段。
尤其是在信息时代的今天,人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。
所以网页也逐渐成为一种新兴的教育资源。
也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。
网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。
站在网络时代的前夜,我们清晰地听到了网络时代的宣言:
谁掌握了网络,谁就掌握了未来。
1.2课题研究的目的和意义
在现今这个高速发展的信息时代,越来越多的企业已经建立或计划建立自己的网站,利用计算机和网络对信息进行管理势在必行。
新闻发布系统必将取代以往繁杂的手工操作模式,实现由复杂、重复性手工操作向人机简便操作的转化,运用计算机完成数据收集、修改、查询、删除以及统计等工作,提高了管理人员工作效率,避免繁重的业务量造成的人为错误,还可运用信息共享加快信息传达。
通过对新闻发布系统的操作,既节省人力、物力,又不必保管、整理数据文件,将一切信息转化为数字化,提高经济效益。
除此之外,操作人员不需很强的专业技术便可操作,系统支持环境广泛、普遍,在技术上具有可行性。
1.3课题应用的原理和理论依据
本系统要求实现新闻发布系统的各项基本功能,所以从安全性和易维护性考虑,选择了Web实现技术。
简单的说就是将系统做成一种B/S模式,可以让用户通过浏览器直接访问位于服务器上的试题以及对系统进行远程维护。
服务器端程序的实现技术也很多,本人选用了当前比较流行的网络编程技术——JSP作为主要实现手段(配合JavaServlet、JavaBean、HTML等)。
JSP作为一种Web实现技术,它的效率是很高的。
这一点正好符合了新闻发布系统所要求的实时性。
JSP自身的安全性,再加上实现模式的特点,完全能够达到新闻发布系统的保密性要求。
除此之外,作为Java平台的一部分,JSP拥有Java语言“一次编写,各处运行”的特点。
又随着越来越多的服务器供货商将JSP支持添加到他们的产品中,这样一来用JSP做成的这套系统可以轻松移植到其它平台来运行。
所以JSP是实现本系统的最佳技术,它是完全可行的。
第2章关键技术介绍
2.1JAVA语言
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
另一方面,Java技术也不断更新。
Java是一种简单的、面向对象的、分布式的、解释型的、强壮的、安全的、体系结构中立的、可移植的、高性能的、多线程的、动态的语言。
Java语言是以对象模型来描述现实世界的,更符合人类思维,是面向对象的编程语言,具有极大的灵活性、模块性和可重用性。
JAVA程序可以嵌入HTML网页,由Web浏览器下载运行,给Web普通用户带来生动的接口和交互方式。
2.2JSP工作原理
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP檔(*.jsp)。
JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其它操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP檔中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
2.3Eclipse开发平台
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
Eclipse是著名的跨平台的自由集成开发环境(IDE)。
最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其它计算机语言比如C++和Python的开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其它功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
2.4MYSQL数据库
MYSQL是一个广受Linux小区人们喜爱的半商业的数据库。
MYSQL是可运行在大多数的Linux平台(i386,Sparc,etc),以及少许非Linux甚至非Unix平台。
目前的数据库系统都支持使用SQL语言来管理数据库。
SQL语言中包含创建数据库和管理数据库的命令。
作为程序开发语言,SQL语言可以分为如下几个部分:
数据类型、数据定义语言、数据操纵语言和数据查询语言。
SQLServer数据库用于存储结构化数据,并且提供对存储数据的访问。
数据库系统允许存储数据信息并且对这些数据具有管理能力。
数据库系统支持使用数据结构来创建和管理数据;支持将数据存储到该数据结构;支持搜索和检索数据;支持数据维护,包括编辑和删除等。
2.5TOMCAT服务器
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
2.6JDBC技术
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。
Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。
JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。
作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。
JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。
JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。
所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。
而JDBC正是作为此种用途的机制。
第3章系统分析
3.1系统功能概述
根据需求调研结果确定本系统主要包括以下功能模块,系统功能用例图如图3.1所示。
图3.1系统功能用例图
3.2系统各模块功能描述
3.2.1登录功能
该模块实现注册后的用户登录到网站。
用户输入个人用户名及密码,ID存在且密码正确后登录网站。
用户登录用例图如图3.2所示。
图3.2用户登录用例图
3.2.2注册功能
该功能实现用户注册功能,主要将用户的个人信息发送到数据库中,以便下次用户登录时能操作成功。
主要包括用户的名字,密码,性别,E-MAIL和用户的生日。
用户注册用例图如图3.3所示。
图3.3用户注册用例图
3.2.3频道管理功能
频道管理模块,该模块属于后台管理模块,包括:
添加频道包括频道名称、频道顺序、修改频道、删除频道。
频道管理用例图如图3.4所示。
图3.4频道管理用例图
3.2.4栏目管理功能
栏目管理模块,该模块属于后台管理模块,包括:
添加栏目和编辑栏目,添加子栏目,包括栏目的名称和栏目顺序。
栏目管理用例图如图3.5所示。
图3.5栏目管理用例图
3.2.5发布新闻功能
发布新闻模块,该模块属于后台用户模块,包括增加新闻,修改新闻,删除新闻,审核新闻,其中包括新闻标题,新闻发布时间。
新闻发布管理用例图如图3.6所示。
图3.6新闻发布管理用例图
3.3系统开发环境
硬件平台:
内存256MB以上;
软件平台:
MyEclipse
操作系统:
WindowsXP;
数据库:
MYSQL;
开发工具包:
JDKVersion1.5;
Web服务器:
Tomcat;
浏览器:
IE5.0,推荐使用IE6.0;
3.4系统任务的可行性分析
3.4.1技术可行性
技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。
本系统用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。
软件方面:
由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。
本系统的开发,是典型的MIS开发。
采用JSP编程语言,已无技术上的问题。
3.4.2系统安全可行性
一个成熟的系统需要有一个相对安全的环境,因此必须建立网站安全性措施,防黑,防病毒方案,同时进行安全隐患分析,安全性包括许多不同方面,从密码和权限到数据库加密,病毒防护,防火墙和VPN,软件错误,数据库备份基至物理性安全措施.针对数据库可能被破坏下载,数据库可能被解密ASP页面的安全性.实行IIS+JSP网站安全管理的方式,其实是对安全隐患分析做出解决方法。
第4章系统设计
4.1指导思想和原则
4.1.1 指导思想
在系统设计的过程中,遵循以下几点指导思想:
(1)软件的设计和开发,不要囫囵吞在一起,最好要分成两个单独的过程——设计过程和开发过程:
传统的软件工程理论,是对整个设计开发过程化研究,而更侧重编程测试和项目规划部分,并且把设计和开发混在一起。
而现在人机交互理论,实际上是把软件设计这部分提出来,是对软件的过程化分析,还借用了认知心理学和其它领域的结果。
目前业界普遍认为:
对商业软件来说,这两个阶段分开,有助于软件质量的提高。
(2)应当以用户为中心去设计软件,而不是以某项新技术或者技术人员为中心去开发软件:
这一点是软件走出象牙塔,渗入人类生活和商业领域的必然后果,软件设计过程中要围绕用户和商业活动来进行,而不是围绕技术和程序员来运行。
(3)决定软件成功与否不是一个软件有多少功能,而是这些功能是否有用和好用。
(4)设计软件,重要的是设计用户行为:
交互设计的含义就是软件设计师设计的不是死的软件,不是静止的接口,而是活的行为,是用户与软件硬件之间的动态交互,并寻找动态的最优。
4.1.2软件设计原则
软件设计过程中一些良好的设计原则将对系统产生深远的影响,以下是软件设计中一些基本的原则:
(1)单一职责原则(SRP)
“单一职责模式”按照字面理解就是,一个类的功能要“单一”或者专一,不能武断地把很多有关或者不有关的功能强制写进一个类里去,它的准确解释是:
“就一个类,应该仅有一个引起它变化的原由”。
我个人认为这个原则主要就是教我们如何抽象并“封装”类。
(2)开放-封闭原则(OC)
“对于扩展开放,对于修改封闭。
”也就是“面对需求,对程序的改动是通过添加代码执行的,而不是修改现有的代码”。
对于随时可能变化的需求,这个原则对于开发者而言实在是太主要了。
在设计的时候,我们要尽量考虑种种变化,把疑问考虑的尽量彻底一些。
但是,无论考虑的多么周到,无论你设计的模块多么“封闭”,都会存在一些不能对之封闭的变化。
既然不太可能完全封闭,我们就必须对设计模块执行抽象,分离出变化点,以备将来“扩展”。
我们都希望在开发工作展开之前或者开始不久就知道项目中可能的变化,这样遵循这个原则,抽象出变化点,程序的“可维护,可扩展,可复用和灵活性好”将大大增强。
(3)里氏代换原则(LSP)
基本地说,也就是“子类型必须能够替换掉它们的父类型”。
一个软件实体如果运用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。
在程序中,把父类都替换成它的子类,程序的行为没有变化。
(4)依赖倒转原则(DIP)
在解释这个原则前,我们先看看经常碰到的“依赖”,也就是耦合,耦合可以分为下面三种:
①零耦合(NilCoupling)联系,两个类没有依赖联系,那就是零耦合。
②具体耦合(ConcreteCoupling)联系,两个具体的类之间有依赖联系,那么就是具体耦合联系,如果一个具体类直接引用另外一个具体类,就会发生这种联系。
③抽象耦合(AbstractCoupling)联系.这种联系发生在一个具体类和一个抽象类之间,这样就使必须发生联系的类之间保持最大的灵活性。
(这也正是我们编程流程中最期望的耦合方式)
4.2 系统的功能结构设计
4.2.1系统功能模块划分
该系统主要分为三大模块:
用户登录注册、查看新闻、管理新闻。
各模块的功能如下,管理设置程序/模块对应如表4.1所示。
表4.1管理设置程序/模块对应表
功能名称
功能概述
用户登录
.注册后的用户,根据相应的密码实现登录
用户注册
用户为操作新闻发布系统的一些功能,必须要注册后才能使用,未注册的用户不能使用
管理频道
管理员可以管理频道,包括对频道的添加,修改和删除
栏目管理
管理员可以管理栏目,包括对栏目的添加,修改和删除
发布新闻管理
管理员可以发布新闻,包括对新闻的添加,修改,删除和审核
(1)用户登录、注册
用户注册后才能进行登录,确保网络安全性。
(2)查看新闻
查看新闻包括浏览新闻本身,评论新闻,以及检索到网站本身存在的新闻。
(3)管理新闻
管理系统是系统管理员对整个网站后台数据库进行维护,是此网站最重要的大门。
在进入本栏目时系统会提示输入系统管理员的用户名和密码,对于普通用户此接口是不可见的。
它包括频道管理、栏目管理、新闻发布管理。
①频道管理
管理员可以添加,修改和删除频道,频道是发布新闻的前提,将新闻归类是发布新闻的第一步。
②栏目管理
管理员可以在相应的频道中,添加,修改,删除栏目。
③新闻发布管理
管理员在后台可以添加,修改,删除,审核新闻,最后达到发布新闻的目的。
4.3角色与模块之间的关系
在该系统中,共有两个角色:
管理员、用户。
每个程序模块只有相关的角色才可以访问,他们之间的具体关系如表4.2所示。
表4.2角色与模块关系表
角色
模块
管理员
频道管理,栏目管理,新闻发布管路
用户
查看新闻,评论新闻,检索新闻
4.4模块设计
以下将分别对系统注册,登录,频道管理,栏目管理,新闻发布管理进行设计。
4.4.1注册模块
添加新的用户信息到数据库。
用户注册网站活动图如图4.1所示。
图4.1用户注册活动图
4.4.2登录模块
用户登录网站活动图如图4.2所示。
图4.2用户登录活动图
4.4.3频道管理
频道管理模块涉及到的操作有以下三种:
(1)添加频道:
添写频道到数据库。
(2)修改频道:
对已完成的频道进行修改。
(3)删除频道:
对已完成的频道进行删除。
添加频道活动图如图4.3所示。
图4.3添加频道活动图
修改频道活动图如图4.4所示。
图4.4修改频道活动图
删除频道活动图如图4.5所示。
图4.5删除频道活动图
4.4.4栏目管理
栏目管理模块涉及到的操作有以下:
(1)添加栏目:
添加新的栏目到数据库。
(2修改栏目:
对栏目进行修改
(3)删除栏目:
对栏目进行删除。
添加栏目活动图如图4.6所示。
图4.6添加栏目活动图
修改栏目活动图如图4.7所示。
图4.7修改栏目活动图
删除栏目活动图如图4.8所示。
图4.8删除栏目活动图
4.5数据库设计
4.5.1数据库结构
数据库是“按照数据结构来组织、存储和管理数据的仓库”。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。
数据库是依照某种数据模型组织起来并存放二级内存中的数据集合。
本系统采用关系型数据库系统MYSQL,针对本系统,所需要的数据库结构如表4.3数据库结构表所示。
表4.3数据库结构表
序号
表名
说明
1
用户表(user)
描述用户的登录信息
2
管理员表(admin)
描述管理员的基本信息
3
新闻频道信息表(channel)
描述新闻频道的信息
4
新闻栏目信息表(news_column)
描述新闻栏目的信息
5
新闻发布信息表(news_info)
描述新闻的详细信息
6
新闻评论信息表(news_comment)
描述新闻评论详细信息
4.5.2数据库表设计
(1)管理员信息表(admin)的设计
管理员信息表用来记录管理人员的登录名和密码。
管理员信息表具体设计如表4.4所示。
表4.4管理员信息表admin
名称
数据类型
长度
允许空
说明
adminId
Int
10
否
管理员ID
adminname
Varchar
10
否
管理员名
Password
Varchar
10
否
密码
(2)用户表(user)的设计
用户信息表记录着用户的各种信息,包括用户名、密码、性别,E-mail,生日的基本信息。
用户表具体设计如表4.5所示。
表4.5用户表user
名称
数据类型
长度
允许空
说明
userId
Int
10
否
用户ID
userName
Varchar
20
否
用户名
password
Varchar
20
否
密码
sex
Int
5
是
性别
E-mail
Varchar
50
是
E-mail
(3)新闻频道表(channel)的设计
商品信息表主要存放新闻频道的一些信息,包含频道ID、频道名称、频道顺序、频道状态信息。
新闻频道表具体设计如表4.6所示。
表4.6新闻频道表channel
名称
序号
数据类型
长度
允许空
说明
channel_id
1
Int
10
否
频道ID
channel_name
2
Varchar
50
是
频道名
channel_order
3
Numeric
(2,0)
是
频道顺序
channel_status
4
Int
10
是
频道状态
(4)新闻栏目表(news_column)的设计
新闻栏目表主要存放栏目的一些信息,包括频道ID,栏目ID,栏目名称,栏目状态,父栏目。
新闻栏目表具体设计如表4.7所示。
表4.7新闻栏目表news_column
名称
序号
数据类型
长度
允许空
说明
Column_id
1
Int
10
否
栏目ID
Column_name
2
Varchar
50
是
栏目名称
Column_status
3
Int
10
是
栏目状态
Parent_column
4
Int
10
是
父栏目
channel_id
5
Intr
10
否
频道ID
(5)新闻评论表(news_comment)的设计
新闻评论表主要存放新闻评论时的一些信息,包含新闻ID、评论人,评论标题,评论内容,评论来源等信息。
新闻评论表具体设计如表4.8所示。
表4.8新闻评论表news_comment
名称
序号
数据类型
长度
允许空
说明
comment_id
1
Int
10
否
唯一编号
News_id
2
Int
10
否
新闻id
Comment_person
3
Varchar
100
是
评论人
Comment_subject
4
Varchar
100
是
评论标题
Comment_content
5
Text
是
评论内容
From_address
6
Varchar
100
是
评论来源
(6)新闻信息表(news_info)的设计
新闻信息表主要存放新闻的一些信息,包含新闻ID、栏目ID,标题、内容,发布者等信息。
新闻信息表具体设计如表4.9所示。
表4.9新闻信息表news_info
名称
序号
数据类型
长度
允许空
说明
News_id
1
Int
10
否
唯一编号
Column_id
2
Int
10