《基于jsp的新闻发布系统设计》论文.docx
- 文档编号:6695096
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:38
- 大小:566.22KB
《基于jsp的新闻发布系统设计》论文.docx
《《基于jsp的新闻发布系统设计》论文.docx》由会员分享,可在线阅读,更多相关《《基于jsp的新闻发布系统设计》论文.docx(38页珍藏版)》请在冰豆网上搜索。
《基于jsp的新闻发布系统设计》论文
基于jsp的新闻发布系统设计
学院
涪陵广播电视大学
专业
计算机网络
班级
2005
学号
姓名
孙祥荣
指导教师
范会联
教师职称
副教授
2010
年
11
月
1
日
摘要
【摘要】
随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。
个性化已逐渐成为当今Web应用的潮流。
利用JSP技术开发的网站新闻管理系统,实现了网站新闻的动态管理,因为可以用来动态发布新闻信息,所以使得对信息的管理更加及时、高效,提高了工作效率。
【关键词】Struts组建编程模型、ActionForm的说明、样式层、持久层、服务层、控制层。
0引言
Internet的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。
由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群。
借此东风,新闻网也迅速发展起来,它内容丰富,涉及到商业、工业、农业、银行、财政、教育、娱乐、信息等各个产业,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。
在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。
1系统分析
1.1需求分析
通过相关调查,要求网站具有以下功能;
通过网络,展示各行业新闻及相关信息。
提供新闻搜索功能。
设置新闻人物投票功能,并统计投票数量。
支持其他网站的友情链接。
为后台管理提供管理入口。
1.2可行性分析
新闻发布系统后台对新闻作了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻网时分类查看新闻信息的要求,同时提供新闻信息查询功能,方便浏览者查找相关的新闻信息。
新闻网后台则通过对总管理员设置和管理员添加等模块对网站管理员进行管理,保证了网站的安全性。
2总体设计
2.1项目规划
新闻网是一个功能完善的新闻类网站,由客户前台新闻浏览和后台新闻管理两大部分组成。
前台功能模块
前台主要包括新闻分类、显示新闻详细信息、新闻信息查询、新闻人物投票、友情链接、提供后台登录口。
后台管理模块
后台主要包括后台总管理员设置及密码修改、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、链接管理、新闻人物管理、退出后台。
2.2系统功能结构图
新闻发布系统前台功能结构,如图1所示。
图1新闻网前台功能结构图
新闻网后台功能结构,如图2所示。
图2新闻网后台功能结构图
3系统设计
3.1设计目标
本网站是根据各行业新闻信息分类进行开发设计的,主要实现如下目标:
分类展示各行业新闻。
显示新闻的详细信息。
设置新闻搜索功能模块。
设置新闻人物投票及投票数统计功能。
提供其他网站的友情链接。
3.2开发及运行环境
硬件平台:
CPU:
P41.8GHz;
内存:
256MB以上。
软件平台:
操作系统:
Windows2000;
数据库:
SQLServer2000;
开发工具包:
JDKVersion1.4.1;
Web服务器:
Tomcat;
浏览器:
IE5.0,推荐使用IE6.0;
分辨率:
最佳效果1024*768像素。
3.3逻辑结构设计
本系统数据库采用SQLserver2000数据库,系统数据库名称为db_news。
数据库db_news中包含7张表。
关于数据库中的数据表请参见附录B
4网站总体架构
4.1网站首页的运行结果
网站前台首页的运行结果如图5所示。
图5网站前台首页运行结果
网站框架图说明如下:
表`1网站前台首页页面说明
区域
名称
说明
对应文件
1
网站导航
主要展示网站的旗帜广告和站内导航条
typeNewWatch.do
2
功能模块
主要用于显示导航模块中的功能
linkSelect.do
3
内容显示
主要用于显示功能模块中的内容
dateNews.do?
type=今日新闻
网站后台首页的运行结果如图6所示。
图6网站后台首页运行结果
网站后台首页中的各部分说明如表2所示。
表2网站后台首页页面说明
区域
名称
说明
对应文件
1
网站导航
主要展示网站的旗帜广告和站内导航条
typeTopAction.do
2
功能模块
主要用于显示导航模块中的功能
left_main.jsp
3
内容显示
主要用于显示功能模块中的内容
right_main.jsp
4.2类的分布
新闻发布系统是利用Struts框架实现的,新闻发布系统中类的分布如图7所示。
样式层
前台控制层
服务层
工具层
后台控制层
持久层
图7类的分布
类存放的文件夹功能如表3所示。
表3类存放的文件夹功能列表
名称
功能
持久层(dao文件夹)
各种方法(增加、删除、修改和查询)的实现
样式层(domain文件夹)
所存放的类是Actionform类,在类中必须要继承ActionForm(也就是entendsActionForm)
服务层(server文件夹)
存放的dao层功能的业务的类
控制层(webtier文件夹)
存放在jsp页面中存在的方法实现的类
工具层(tool文件夹)
类名为JDBConnection.java(连接数据库的功能)、类名为Chinese.java(字符级转换的类)、类名为SessionLib(用来存在session变量)
5网站后台主要功能模块设计
5.1后台登录模块设计
在新闻发布系统中,后台管理员分为两种:
一个是普通管理员,他可以对新闻类型进行定义,也可以发布新闻、设置投票人数及网站链接;另一个是总管理员,他除了可操作以上功能外,还可以对普通管理员进行设置,总管理员和普通管理员都能通过后台登录页面登录后台。
在前台单击“进入后台”超链接,即可进入到后台登录页面,如图8所示。
图8后台登录页面
1.样式层的类
具体代码如下
/*******************************ManagerActionForm.java***************************/
packagecom.victor.domain;
importorg.apache.struts.action.*;
publicclassManagerActionFormextendsActionForm{
privateIntegermanagerID;//在数据库中的流水号
privateStringmanagerIssueDate;//管理员添加日期
privateStringmanagerMark;//管理员的标示
privateStringmanagerName;//管理员帐号
privateStringmanagerPassword;//管理员密码
privateStringmanagerRealName;//管理员的真实姓名
privateStringmanagerType;//管理员的权限
publicManagerActionForm(){
this.managerID=newInteger(-1);
this.managerIssueDate="";
this.managerMark="";
this.managerName="";
this.managerPassword="";
this.managerRealName="";
this.managerType="";
}
publicIntegergetManagerID(){
returnmanagerID;
}
publicvoidsetManagerID(IntegermanagerID){
this.managerID=managerID;
}
………………………………………………….
2.持久层的方法
验证输入的内容是否正确有很多方法,笔者采用的是利用sql语句的方法进行验证输入账号和密码。
对输入的账号及密码判断是否正确。
利用接口类的方法实现的代码如下:
/*********************************ManagerDao.java*******************************/
publicinterfaceManagerDao{
publicManagerActionFormmanagerCheck(ManagerActionFormmanagerActionForm)
}
实现接口的方法的代码如下:
/*******************************ManagerDaoImpl.java*****************************/
//核对普通管理员帐号和密码
publicclassManagerDaoImplimplementsManagerDao{//实现接口类中的方法用implements加上接口类名
publicManagerActionFormmanagerCheck(ManagerActionFormmanagerActionForm){
ManagerActionFormmanager=null;定义一个Object型的数据,初使化为null
JDBConnectionconnection=newJDBConnection();//连接数据库的方法
Stringsql="select*fromtb_managerwhereName='"+managerActionForm.getManagerName()+"'";
try{
ResultSetrs=connection.executeQuery(sql);//把sql语句传到JDBConnection类中去
while(rs.next()){
manager=newManagerActionForm();
manager.setManagerPassword(rs.getString(3));//查找过所需要的字段数据
}
}
catch(SQLExceptionex){
}
connection.close();
returnmanager;//把对象返回到方法中去
}
}
3.服务层的方法
利用接口类的方法实现的代码如下:
/********************************ManagerFacade.java*****************************/
publicinterfaceManagerFacade{
publicManagerActionFormmanagerCheck(ManagerActionFormmanagerActionForm)
}
实现接口的方法的代码如下:
/*******************************ManagerFacadeImpl.java**************************/
publicclassManagerFacadeImplimplementsManagerFacade{//实现接口类的方法用implements
privateManagerDaomanagerDao;
publicManagerFacadeImpl(){
this.managerDao=newManagerDaoImpl();//实现dao类的方法。
}
publicManagerActionFormmanagerCheck(ManagerActionFormmanagerActionForm){
returnthis.managerDao.managerCheck(managerActionForm);//调用持久层的方法
}
}
4.管理员登陆控制层的方法
/****************************ManagerCheckAction.java****************************/
packagecom.victor.webtier.managerAction;
//核对帐号和密码
publicclassManagerCheckActionextendsAction{
privateManagerFacademanagerFacade;
publicManagerCheckAction(){
this.managerFacade=newManagerFacadeImpl();
}
publicActionForwardperform(ActionMappingactionMapping,ActionFormactionForm,
HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse){
Chinesechinese=newChinese();
ManagerActionFormmanagerActionForm=(ManagerActionForm)actionForm;
managerActionForm.setManagerName(chinese.str(httpServletRequest.
getParameter("managerName")));
ManagerActionFormmanager=this.managerFacade.managerCheck(managerActionForm);
//通过对象调用方法
if(manager==null){
returnactionMapping.findForward("managerWrong");//通过manager是空值的话,返回错误页面。
}
elseif(!
manager.getManagerPassword().equals(httpServletRequest.getParameter("managerPassWord")))
{
returnactionMapping.findForward("managerWrong");//查找的值与在jsp页面中的值不一致,返回错误页面。
}
returnactionMapping.findForward("managerRight");//查找的值与在jsp页面中的值一致,返回正确页面。
}}
5.struts-config.xml中的配置
在这里主要配置formBean和action动作指向的jsp页面。
代码如下:
/********************************struts-config.xml*********************************/
--指错误的页面-->
--指向正确的页面-->
6.管理员登陆jsp页面的说明
/*********************************managerCheck.jsp*********************************/
管理员登陆
5.2总管理员设置模块设计
总管理员在数据库中是惟一的,总管理员的信息在页面中不会显示出来,在此页面中只能修改自己的密码及对普通管理员进行设置。
用户单击“总管理员设置”超链接,进入总管理员设置页面。
系统首先对用户输入的账户和密码进行核对。
因为并不是所有的管理员都能够有这个权利,所以在SQL语句中应体现惟一性的条件,样式层所要调用的类是ActionForm,跟用户登录时调用的actionForm是同一个类,在这里就不做介绍了。
1.总管理员的登录操作
登录方法主要用于系统管理员进行系统维护时,作为登录后台时密码验证之用。
在用户输入用户账号和密码之后,调用该方法即可验证该用户是否合法。
单击“总管理员设置”超链接,进入到总管理员设置页面,实现此超链接的jsp代码如下:
/***********************************left_main.jsp*********************************/
--把超链接的jsp页面,指向框架显示出来,框架名称为mainFrame。
(如图3.6所示)-->
总管理员页面的运行结果如图9所示。
图9总管理员页面运行结果
总管理员页面所对应的jsp页面代码如下:
/*********************************adminPassword.jsp******************************/
在上面的jsp页面代码中,action触发的是adminAction.do的方法,它与后台登录的方法相似,只是调用的SQL语句不同。
在持久层中查询总管理员的方法的代码如下:
接口类的方法:
/*********************************ManagerDao.java*********************************/
publicManagerActionFormadminCheck(ManagerActionFormmanagerActionForm)
实现接口类的方法:
/***********************************ManagerDaoImpl.java***************************/
publicManagerActionFormadminCheck(ManagerActionFormmanagerActionForm){
ManagerActionFormmanager=null;//初始化对象
JDBConnectionconnection=newJDBConnection();
Stringsql="select*fromtb_managerwhereName='"+
managerActionForm.getManagerName()+"'andmark='"+
managerActionForm.getManagerMark()+"'";
try{
ResultSetrs=connection.executeQuery(sql);//执行查找的方法
while(rs.next()){
manager=newManagerActionForm();
manager.setManagerPassword(rs.getString(3));//取出查询的密码
}
}
catch(SQLExceptionex){
}
connection.close();//关闭数据库
re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于jsp的新闻发布系统设计 基于 jsp 新闻 发布 系统 设计 论文