基于JSP的新闻发布系统的设计与实现含源文件文档格式.doc
《基于JSP的新闻发布系统的设计与实现含源文件文档格式.doc》由会员分享,可在线阅读,更多相关《基于JSP的新闻发布系统的设计与实现含源文件文档格式.doc(18页珍藏版)》请在冰点文库上搜索。
在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。
1.2新闻发布的研究现状
新闻发布系统是一个新闻单位不可缺少的部分,它的内容对于新闻的决策者和管理者来说都至关重要,所以新闻发布系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对网上新闻发布进行管理,具有着手于管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高网上新闻发布的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
本系统可以将杂乱无章的信息经过组织,合理有序地呈现在大家面前.当今社会是一个信息化的社会,新闻作为信息的一部分有着信息量大,类别繁多,形式多样的特点,新闻发布系统的概念就此提出.新闻发布系统的提出使电视不再是唯一的新闻媒体,从此以后网络也充当了一个重要的新闻媒介的功能.简单地说,新闻发布系统就是充当一个网络新闻媒介的功能,主要实现对新闻的分类,上传,,发布,模拟了一般新闻媒介的新闻发布的过程,通过不同权限的账号分别实现以上所说功能,当然这些功能也可以是某一个账号全部具有。
传统的报纸杂志已经远远满足不了人们的需求,人们更加希望于能够在网上了解更多的新闻和信息,网页逐渐融入人们的生活,快速及时地浏览新闻,获取五彩缤纷的网上信息,已成为人们日常生活的一部分。
1.3毕业设计解决的主要问题
本毕业设计“新闻发布系统的设计与实现”将解决的主要问题如下:
(1)前台新闻信息的搜索及浏览。
(2)对新闻添加删除修改的页面不同间的传值,展示各行业新闻及相关信息
(3)后台数据如何传到前台显示,并在多个不同的页面之间显示
(4)设置新闻人物投票功能,并统计投票数量。
(5)支持其他网站的友情链接,为后台管理提供管理入口。
2.B/S架构的新闻发布系统的概述
2.1系统的概念
B/S架构就是browser/server即浏览器与服务器,用户在前台浏览器界面浏览搜索新闻信息,管理员登陆后台对新闻信息类型以及管理员权限进行一系列操作,对后台数据库的一系列操作会及时更新后反映到前台浏览器界面,实现信息交互。
2.2可行性分析
2.2.1经济可行性
从经济可行性角度考虑,这时所说的经济,并不专指物质经济,当然也包括效益经济。
要运行基于WEB的校园新闻发布系统,当然是必须添加一些网络及硬件设备,这也就必然比传统信息传播在物资设备方面要投入更多财力。
从效益经济来看,运行这套在线新闻发布系统,不光可以省去许多信息传递时间,甚至在信息化的今天为信息及时更新,信息及时传达等带来不小的便利。
综合上面论述,在线新闻发布系统的开发与设计在经济角度来说是利大于弊,是非常值得实施的。
2.2.2技术可行性
从技术可行性角度考虑,随着网络技术的深入发展,一些网络办公系统,政府服务软件,在线聊天娱乐软件等等网络应用软件也成功开发并投入运营了,在社会中产生了不小的社会与经济效益。
HTML作为一种样式语言,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任的情况之下,在JSP编程语言高度发展的形式下,我们开始了对新闻发布系统的开发。
运用现在软件业流行的技术成熟的ASP、JSP等开发语言,以及高效率,易操作VisualInterDev等开发工具,再借鉴别人成功开发的宝贵经验,在线新闻发布系统是完全可以开发出来的。
2.3系统的主体架构及开发工具
2.3.1主体架构介绍
该系统主要用到Struts架构,主要是MVC模式即模型(Model)-视图(View)-控制器(Controller)。
(1)视图是用户看到并与之交互的界面,视图是向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
视图可以向模型查询业务状态,但不能改变模型,视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
主要包括一些JSP页面及HTML文件。
(2)模型是应用程序的主题部分。
模型表示业务数据和业务逻辑,一个模型能为多个视图提供数据。
由于一个模型可被多个视图重用,所以提高了应用的可重用性。
主要包括一些JavaBeans和java文件
(3)控制器接受用户的输入并调用模型和视图去完成用户的需求。
当WEB用户单击WEB页面中的提交按纽来发送html表单时,控制器接受请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。
主要包括一些xml控制文件。
(4)MVC的处理过程就是首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理;
然后模型根据用户的请求进行相应的业务逻辑处理,并返回数据;
最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。
2.3.2B/S模型的MVC框架图
在基于B/S模型的新闻发布系统中,控制器在整个系统的作用很关键,处于中心位置,视图上的关键操作要经由控制器来提供,图1展示了B/S结构的模型图:
浏
览
器
web
服
务
Struts-config.xml
(控制器)
actionServlet
(视图)
jsp
action
(模型)
JavaBeans
ejb
图1B/S模型图
2.3.3MyEclipse5.0开发平台概述
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,JavaScript,SQL,Hibernate。
MyEclipse5.0更智能、更快捷、更简单和更便宜通过增加UML双向建模工具、WYSIWYG的JSP/StrutsDesigner、可视化的Hibernate/ORM工具、Spring和Webservices支持,以及新的Oracle数据库开发为业界提供全面的产品。
2.3.4MyEclipse5.0的特征
在结构上,MyEclipse的特征可以被分为7类:
(1).J2EE模型
(2).WEB开发工具
(3).EJB开发工具
(4).应用程序服务器的连接器
(5).J2EE项目部署服务
(6).数据库服务
(7).MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
2.3.5开发及运行环境
硬件平台:
CPU:
P41.8GHz;
内存:
256MB以上。
软件平台:
操作系统:
WindowsXPServicePack2;
数据库:
SQLServer2000;
开发工具包:
JDKVersion1.6.1;
Web服务器:
Tomcat5.0;
浏览器:
IE6.0推荐IE7;
3.系统设计
3.1系统功能结构图
新闻网是一个功能完善的新闻类网站,由客户前台新闻浏览和后台新闻管理两大部分组成。
前台功能模块:
前台主要包括新闻分类、显示新闻详细信息、新闻信息查询、新闻人物投票、友情链接、提供后台登录口。
后台管理模块:
后台主要包括后台总管理员设置及密码修改、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、链接管理、新闻人物管理、退出后台。
主要功能结构图如图2:
新闻发布系统功能结构
新闻网前台功能结构
新闻分类
新闻详细信息
新闻信息查询
新闻人物投票
友情链接
后台登录口
新闻网后台功能结构
总管理员设置
总管理员修改密码
添加管理员
管理员信息设置
新闻类型管理
新闻详细类型管理
新闻信息管理
新闻人物管理
链接管理
退出后台
图2系统功能结构图
本网站是根据各行业新闻信息分类进行开发设计的,主要实现如下目标:
分类展示各行业新闻。
显示新闻的详细信息。
设置新闻搜索功能模块。
设置新闻人物投票及投票数统计功能。
提供其他网站的友情链接。
3.2数据库结构设计
本系统数据库采用SQLserver2000数据库,系统数据库名称为news。
数据库news中包含6张表。
数据库中的数据表如下
(1)tb_Link(链接其他网站表)
链接其他网站表主要用于保存其他网站信息。
表tb_Link的结构如表1所示。
表1表tb_Link的结构
字段名
数据类型
长度
是否主键
描述
ID
int
4
是
数据库流水号
Name
varchar
50
否
链接网站名称
Address
链接网站地址
IssDate
datetime
8
链接网站发布的日期
(2)tb_manager(后台管理员设置表)
后台管理员设置表主要用于保存后台管理员信息。
表tb_manager的结构如表2所示。
表2表tb_manager的结构
管理员帐号
Password
管理员密码
RealName
管理员真实姓名
IssueDate
管理员注册时间
mark
管理员标识
(3)tb_news(新闻管理表)
新闻管理表主要用于保存各类新闻信息内容。
表tb_news的结构如表3所示。
表3表tb_news的结构
Title
100
新闻标题
Content
text
16
新闻内容
Type
新闻类型
Style
新闻详细类型
smalldatetime
新闻发布日期
(4)tb_newsType(新闻类别表)
新闻类别表主要用于保存新闻类别信息。
表tb_newsType的结构如表4所示。
表4tb_newsType的结构
TypeName
新闻类型名称
DateTime
新闻类型建立日期
(5)tb_Style(新闻详细类别表)
新闻详细类别表主要用于保存新闻详细类别信息。
表tb_Style的结构如表5所示。
表5tb_Style的结构
stylename
新闻详细类型名称
stname
datename
(6)tb_Vote(新闻人物投票表)
新闻人物投票表主要用于保存新闻人物投票信息。
表tb_Vote的结构如表B.6所示。
表6表tb_Vote的结构
新闻人物姓名
新闻人物地址
age
新闻人物籍贯
Job
新闻人物工作
Remark
新闻人物备注
Number
新闻人物票数
3.3.网站总体架构
3.3.1网站首页的运行结果
网站前台首页的运行结果如图3所示。
图3网站前台首页运行结果
网站框架图说明如表1所示:
表1网站前台首页页面说明
区域
名称
说明
对应文件
1
网站导航
主要展示网站的旗帜广告和站内导条
dao.NewsTypelist/top.jsp
2
功能模块
主要用于显示导航模块中的功能
dao.NewsTypelist/left.jsp
3
内容显示
主要用于显示功能模块中的内容
dao.NewsTypelist/middle.jsp
网站后台首页的运行结果如图4所示。
图4网站后台首页运行结果
网站后台首页中的各部分说明如表2所示。
表2网站后台首页页面说明
主要展示网站的旗帜广告和站内导航条
manager_top.jsp
left_main.jsp
right_main.jsp
3.3.2类的分布
新闻发布系统是利用Struts框架实现的,新闻发布系统中类的分布如图5所示。
一些action继承类
实现一些数据库连接等类
一些actionform继承类
图5类的分布
类存放的文件夹功能如表3所示。
表3类存放的文件夹功能列表
功能
action文件夹
各种方法(增加、删除、修改和查询)的实现
actionform文件夹
取得页面表单数据的java类继承actionform
dao文件夹
类名为Connect.java(连接数据库的功能)、类名为MyRequestProcessor.java(字符级转换的类)、类名为NewsTypelist.java(一些固定的取得数据的javabean)
3.4网站主要功能模块设计
3.4.1网站后台主要功能模块设计
新闻发布系统中,后台管理员分为两种:
一个是普通管理员,他可以对新闻类型进行定义,也可以发布新闻、设置投票人数及网站链接;
另一个是总管理员,他除了可操作以上功能外,还可以对普通管理员进行设置,总管理员和普通管理员都能通过后台登录页面登录后台。
系统首先对用户输入的账户和密码进行核对。
在前台单击“进入后台”超链接,即可进入到后台登录页面,如图6所示。
图6后台登录页面
总管理员在数据库中是惟一的,总管理员的信息在页面中不会显示出来,在此页面中只能修改自己的密码及对普通管理员进行设置。
用户单击“总管理员设置”超链接,进入总管理员设置页面。
。
总管理员是不能在前台注册的,只能在后台在数据库中加入。
总管理员登陆界面如图7所示
图7总管理员登陆界面
总管理员操作界面如图8所示
图8总管理员操作界面
并不是所有的管理员都能够有这个权利。
注册只能是普通管理员,总管理员登陆后的页面显示的是所有管理员的信息,其操作是可以对普通管理员进行删除和修改权限。
修改权限即将普通管理员升级为总管理员。
普通管理员可以对新闻进行发布修改删除等,显示的信息不会显示出总管理员的信息,只会显示同级的普通管理员信息。
同时可对自己的资料密码进行修改,不得修改删除其他同级的管理员,普通管理员信息如图9
图9普通管理员操作界面
发布新闻是任何管理员登陆后都可以进行的操作,其界面如图10
图10发布新闻信息操作界面
3.4.2网站前台主要功能模块设计
3.4.2.1新闻的显示
这个功能就是新闻的查看,主要用到了sql语句中的select语句,即显示所有新闻标题及产看操作,所用到的dao里面NewsTypelist.java里的方法。
这将显示在middle.jsp中效果如图11所示。
点击操作里的链接后可查看具体内容。
图11前台新闻信息显示界面
3.4.2.2输入新闻的关键字查找新闻
关键字查找新闻就是在文本框中输入新闻的相关内容,执行SQL语句,查找相关新闻信息,其中的下拉列表框是一个查询的动作,下拉框中有各种查询类型,实现过程与前面的后台新闻相似新闻查找运行结果如图12所示。
图12查询新闻信息界面
4.新闻发布系统关键代码的实现
4.1连接数据库代码的实现
连接数据库是非常重要的,在每次进行业务逻辑操作(增删查改)时都需要连接数据库,本系统数据不是非常大,所以使用了SQL2000数据库软件,同时将连接数据库的代码专门封装于一个类里,在每次连接时只需创建一个类对象即可直接调用方法连接数据库,Connect.java关键代码如下:
//加载SQL数据库驱动
Class.forName("
com.microsoft.jdbc.sqlserver.SQLServerDriver"
);
//通常安装SQL2000时系统数据库用户名和密码都是默认的
Stringurl="
jdbc:
microsoft:
sqlserver:
//localhost:
1433;
DatabaseName=news"
;
Stringname="
sa"
//用户名
Stringpassword="
"
//密码
//用DriverManager类与DBMS建立一个连接
Connectionconn=DriverManager.getConnection(url,name,password);
4.2对struts-config.xml的配置
<
struts-config>
元素是struts配置文件的根元素,和它对应的配置类为org.apache.struts.config.ModuleConfig类关键代码如下:
<
//在action-mappings中动态配置actionformbean后必须配置<
form-bean>
元素的<
form-property>
<
form-beans>
//name指定表单字段的名字,type指定表单字段的类型,若是java类,必须是完整的类名
<
form-beanname="
manager"
type="
actionform.manager"
/>
news"
actionform.newsForm"
/form-beans>
action-mappings>
//path指定访问action的路径它以”/”开头,没有扩展名
actionpath="
/login"
//type指定action类的完整类名
type="
action.Manageraction"
//name指定和action关联的actionformbean的名字,该名字必须是在<
元素中定义过。
name="
parameter="
methode"
scope="
request"
validate="
false"
>
//forward指定转发的url路径
<
forwardname="
success"
path="
/manager_main.jsp"
/>
failure"
/managerCheckFailed.jsp"
/action>
/action-mappings>
4.3获取页面表单元素的关键代码
定义的string类型的字符串变量名必须与表单元素的name相对应
public