JavaWeb程序设计-项目库-项目案例-新闻发布系统设计文档.doc_第1页
JavaWeb程序设计-项目库-项目案例-新闻发布系统设计文档.doc_第2页
JavaWeb程序设计-项目库-项目案例-新闻发布系统设计文档.doc_第3页
JavaWeb程序设计-项目库-项目案例-新闻发布系统设计文档.doc_第4页
JavaWeb程序设计-项目库-项目案例-新闻发布系统设计文档.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

新闻发布系统 30 目录摘要10 引言31 系统分析41.1 需求分析41.2 可行性分析42 总体设计42.1 项目规划42.2 系统功能结构图43 系统设计53.1 设计目标53.2 开发及运行环境53.3 逻辑结构设计54 网站总体架构64.1 文件布局64.2 网站首页的运行结果64.2 类的分布85 网站后台主要功能模块设计85.1 后台登录模块设计85.2 总管理员设置模块设计115.3 更改总管理员密码模块设计235.4 新闻信息管理275.5 总结326 网站前台主要功能模块设计326.1 今日新闻的显示326.2 输入新闻的关键字查找新闻346.3 新闻人物的查看和投票367 小结39附录一 参考文献40附录二 数据表41附录三 文件架构图430 引言Internet的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群。借此东风,新闻网也迅速发展起来,它内容丰富,涉及到商业、工业、农业、银行、财政、教育、娱乐、信息等各个产业,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。1 系统分析1.1 需求分析通过相关调查,要求网站具有以下功能;通过网络,展示各行业新闻及相关信息。提供新闻搜索功能。设置新闻人物投票功能,并统计投票数量。支持其他网站的友情链接。为后台管理提供管理入口。1.2 可行性分析新闻发布系统后台对新闻作了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻网时分类查看新闻信息的要求,同时提供新闻信息查询功能,方便浏览者查找相关的新闻信息。新闻网后台则通过对总管理员设置和管理员添加等模块对网站管理员进行管理,保证了网站的安全性。2 总体设计2.1 项目规划新闻网是一个功能完善的新闻类网站,由客户前台新闻浏览和后台新闻管理两大部分组成。前台功能模块前台主要包括新闻分类、显示新闻详细信息、新闻信息查询、新闻人物投票、友情链接、提供后台登录口。后台管理模块后台主要包括后台总管理员设置及密码修改、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、链接管理、新闻人物管理、退出后台。2.2 系统功能结构图新闻发布系统前台功能结构,如图1所示。新闻网前台功能结构新闻分类新闻详细信息新闻信息查询新闻人物投票友情链接后台登录口图1 新闻网前台功能结构图新闻网后台功能结构,如图2所示。新闻网后台功能结构总管理员设置总管理员修改密码添加管理员管理员信息设置新闻类型管理新闻详细类型管理新闻信息管理新闻人物管理链接管理退出后台图2 新闻网后台功能结构图3 系统设计3.1 设计目标本网站是根据各行业新闻信息分类进行开发设计的,主要实现如下目标:分类展示各行业新闻。显示新闻的详细信息。设置新闻搜索功能模块。设置新闻人物投票及投票数统计功能。提供其他网站的友情链接。3.2 开发及运行环境硬件平台:CPU:P41.8GHz;内存:256MB以上。软件平台:操作系统:Windows 2000;数据库:SQL Server 2000;开发工具包:JDK Version1.4.1;Web服务器:Tomcat;浏览器:IE5.0,推荐使用IE6.0;分辨率:最佳效果1024*768像素。3.3 逻辑结构设计本系统数据库采用SQL server 2000数据库,系统数据库名称为db_news。数据库db_news中包含7张表。关于数据库中的数据表请参见附录B4 网站总体架构4.1 网站首页的运行结果网站前台首页的运行结果如图5所示。312图5 网站前台首页运行结果网站框架图说明如下:表1 网站前台首页页面说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeNewWatch.do2功能模块主要用于显示导航模块中的功能linkSelect.do3内容显示主要用于显示功能模块中的内容dateNews.do?type=今日新闻网站后台首页的运行结果如图6所示。312图6 网站后台首页运行结果网站后台首页中的各部分说明如表2所示。表2 网站后台首页页面说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeTopAction.do2功能模块主要用于显示导航模块中的功能left_main.jsp3内容显示主要用于显示功能模块中的内容right_main.jsp4.2 类的分布新闻发布系统是利用Struts框架实现的,新闻发布系统中类的分布如图7所示。样式层前台控制层服务层工具层后台控制层持久层图7 类的分布类存放的文件夹功能如表3所示。表3 类存放的文件夹功能列表名称功能持久层(dao文件夹)各种方法(增加、删除、修改和查询)的实现样式层(domain文件夹)所存放的类是Actionform类,在类中必须要继承ActionForm(也就是entends ActionForm)服务层(server文件夹)存放的dao层功能的业务的类控制层(webtier文件夹)存放在jsp页面中存在的方法实现的类工具层(tool文件夹)类名为JDBConnection.java(连接数据库的功能)、类名为Chinese.java(字符级转换的类)、类名为SessionLib(用来存在session变量)5 网站后台主要功能模块设计5.1 后台登录模块设计在新闻发布系统中,后台管理员分为两种:一个是普通管理员,他可以对新闻类型进行定义,也可以发布新闻、设置投票人数及网站链接;另一个是总管理员,他除了可操作以上功能外,还可以对普通管理员进行设置,总管理员和普通管理员都能通过后台登录页面登录后台。在前台单击“进入后台”超链接,即可进入到后台登录页面,如图8所示。图8 后台登录页面1 样式层的类具体代码如下/* ManagerActionForm.java*/package com.victor.domain;import org.apache.struts.action.*;public class ManagerActionForm extends ActionForm private Integer managerID; /在数据库中的流水号 private String managerIssueDate; /管理员添加日期 private String managerMark; /管理员的标示 private String managerName; /管理员帐号 private String managerPassword; /管理员密码 private String managerRealName; /管理员的真实姓名 private String managerType; /管理员的权限 public ManagerActionForm() this.managerID = new Integer( -1); this.managerIssueDate = ; this.managerMark = ; this.managerName = ; this.managerPassword = ; this.managerRealName = ; this.managerType = ; public Integer getManagerID() return managerID; public void setManagerID(Integer managerID) this.managerID = managerID; .2持久层的方法验证输入的内容是否正确有很多方法,笔者采用的是利用sql语句的方法进行验证输入账号和密码。对输入的账号及密码判断是否正确。利用接口类的方法实现的代码如下:/* ManagerDao.java*/public interface ManagerDao public ManagerActionForm managerCheck(ManagerActionForm managerActionForm)实现接口的方法的代码如下:/* ManagerDaoImpl.java*/核对普通管理员帐号和密码public class ManagerDaoImpl implements ManagerDao /实现接口类中的方法用implements加上接口类名 public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) ManagerActionForm manager = null; 定义一个Object型的数据,初使化为null JDBConnection connection = new JDBConnection(); /连接数据库的方法 String sql = select * from tb_manager where Name= + managerActionForm.getManagerName() + ; try ResultSet rs = connection.executeQuery(sql); / 把sql语句传到JDBConnection类中去 while (rs.next() manager = new ManagerActionForm(); manager.setManagerPassword(rs.getString(3); /查找过所需要的字段数据 catch (SQLException ex) connection.close(); return manager; /把对象返回到方法中去 3服务层的方法利用接口类的方法实现的代码如下:/* ManagerFacade.java*/public interface ManagerFacade public ManagerActionForm managerCheck(ManagerActionForm managerActionForm)实现接口的方法的代码如下:/* ManagerFacadeImpl.java*/public class ManagerFacadeImpl implements ManagerFacade /实现接口类的方法用implements private ManagerDao managerDao; public ManagerFacadeImpl() this.managerDao = new ManagerDaoImpl(); /实现dao类的方法。 public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) return this.managerDao.managerCheck(managerActionForm); /调用持久层的方法 4管理员登陆控制层的方法/* ManagerCheckAction.java*/package com.victor.webtier.managerAction;/核对帐号和密码public class ManagerCheckAction extends Action private ManagerFacade managerFacade; public ManagerCheckAction() this.managerFacade = new ManagerFacadeImpl(); public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) Chinese chinese = new Chinese(); ManagerActionForm managerActionForm = (ManagerActionForm) actionForm; managerActionForm.setManagerName(chinese.str(httpServletRequest. getParameter(managerName);ManagerActionForm manager = this.managerFacade.managerCheck(managerActionForm); /通过对象调用方法 if (manager = null) return actionMapping.findForward(managerWrong);/通过manager是空值的话,返回错误页面。 else if (!manager.getManagerPassword().equals(httpServletRequest.getParameter( managerPassWord)return actionMapping.findForward(managerWrong);/查找的值与在jsp页面中的值不一致,返回错误页面。 return actionMapping.findForward(managerRight); /查找的值与在jsp页面中的值一致,返回正确页面。 5struts-config.xml中的配置在这里主要配置formBean和action动作指向的jsp页面。代码如下:/* struts-config.xml*/ 6管理员登陆jsp页面的说明/* managerCheck.jsp*/ 管理员登陆   帐号: 密码:      5.2 总管理员设置模块设计总管理员在数据库中是惟一的,总管理员的信息在页面中不会显示出来,在此页面中只能修改自己的密码及对普通管理员进行设置。用户单击“总管理员设置”超链接,进入总管理员设置页面。系统首先对用户输入的账户和密码进行核对。因为并不是所有的管理员都能够有这个权利,所以在SQL语句中应体现惟一性的条件,样式层所要调用的类是ActionForm,跟用户登录时调用的actionForm是同一个类,在这里就不做介绍了。1总管理员的登录操作登录方法主要用于系统管理员进行系统维护时,作为登录后台时密码验证之用。在用户输入用户账号和密码之后,调用该方法即可验证该用户是否合法。单击“总管理员设置”超链接,进入到总管理员设置页面,实现此超链接的jsp代码如下:/* left_main.jsp*/总管理员设置总管理员页面的运行结果如图9所示。图9 总管理员页面运行结果总管理员页面所对应的jsp页面代码如下:/* adminPassword.jsp*/ 请输入帐户: 请输入密码:     在上面的jsp页面代码中,action触发的是adminAction.do的方法,它与后台登录的方法相似,只是调用的SQL语句不同。在持久层中查询总管理员的方法的代码如下:接口类的方法:/* ManagerDao.java*/public ManagerActionForm adminCheck(ManagerActionForm managerActionForm)实现接口类的方法:/* ManagerDaoImpl.java*/ public ManagerActionForm adminCheck(ManagerActionForm managerActionForm) ManagerActionForm manager = null; /初始化对象JDBConnection connection = new JDBConnection(); String sql = select * from tb_manager where Name= + managerActionForm.getManagerName() + and mark= + managerActionForm.getManagerMark() + ;try ResultSet rs = connection.executeQuery(sql); /执行查找的方法 while (rs.next() manager = new ManagerActionForm(); manager.setManagerPassword(rs.getString(3); /取出查询的密码 catch (SQLException ex) connection.close(); /关闭数据库 return manager; 在服务层中实现持久层的方法如下:接口类的方法:/* ManagerFacade.java*/public interface ManagerFacade public ManagerActionForm adminCheck(ManagerActionForm managerActionForm);实现接口类的方法:/* ManagerFacadeIm.java*/public class ManagerFacadeImpl implements ManagerFacade private ManagerDao managerDao; public ManagerFacadeImpl() this.managerDao = new ManagerDaoImpl(); public ManagerActionForm adminCheck(ManagerActionForm managerActionForm) return this.managerDao.adminCheck(managerActionForm); /调用持久层的方法 具体在控制层的代码如下:/* ManagerDaoImpl.jsp*/package com.victor.webtier.managerAction; import org.apache.struts.action.*;import javax.servlet.http.*;import com.victor.domain.ManagerActionForm;import com.victor.service.ManagerFacade;import com.victor.service.ManagerFacadeImpl;/核对总管理员帐号和密码public class AdminCheckAction extends Action private ManagerFacade managerFacade; public AdminCheckAction() this.managerFacade = new ManagerFacadeImpl(); public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) ManagerActionForm managerActionForm = (ManagerActionForm) actionForm; managerActionForm.setManagerName(httpServletRequest.getParameter(Name);/从页面上取值 managerActionForm.setManagerMark(总管理员); /取固定的名称 ManagerActionForm manager = this.managerFacade.adminCheck(managerActionForm); if (manager = null) /if判断,做比较 return actionMapping.findForward(adminWrong); else if (!manager.getManagerPassword().equals(httpServletRequest.getParameter(adminPassWord) return actionMapping.findForward(adminWrong); return actionMapping.findForward(adminRight); 上面的类文件中加载了ManagerActionForm类,这个类是属于ActionForm类,相当于JavaBean,在这里主要实现进行取值和赋值的功能。struts-config.xml的配置的代码如下:/* struts-config.xml*/ 如果用户输入的总管理员的账户和密码不正确,此时jsp页面中将提示用户密码不正确。实现此功能的jsp代码如下:/* adminPasswordFail .jsp*/ adminPasswordFail 密码不正确 2秒种后从新输入密码2对管理员的查询操作总管理员登录成功后,系统将对除了总管理员以外的所有普通管理员进行查询操作。此时页面运行结果如图10所示。图10 总管理员查询功能持久层的查询代码如下:接口类的代码:/* ManagerDao.java*/package com.victor.dao;import java.util.List;import com.victor.domain.ManagerActionForm;public interface ManagerDao public List managerSelect(ManagerActionForm managerActionForm); /在接口类的查询方法方法实现接口类的代码:/* ManagerDaoImpl.java*/查出所有的管理员 public List managerSelect(ManagerActionForm managerActionForm) JDBConnection connection = new JDBConnection(); /调用连接数据库的方法 List list = new ArrayList(); /定义一个List容器的对象,去实现ArrayList()中的方法 String sql = select * from tb_manager where mark= + managerActionForm.getManagerMark() + ; /有条件的查询语句 try ResultSet rs = connection.executeQuery(sql); /调用JDBConnection查询的方法 while (rs.next() ManagerActionForm manager = new ManagerActionForm(); manager.setManagerID(Integer.valueOf(rs.getString(1); manager.setManagerName(rs.getString(2); manager.setManagerPassword(rs.getString(3); manager.setManagerRealName(rs.getString(4); manager.setManagerIssueDate(rs.getString(5); manager.setManagerMark(rs.getString(6); list.add(manager); /l利用对象list的add()方法把查出来的数据放在List容器中 connection.close(); /关闭数据库 catch (SQLException ex) return list; /返回值要与方法的类型要一致 调用类的方法如图11所示:图11 调用的方法服务层的查询代码如下:接口类的代码:/* ManagerFacade.java*/public interface ManagerFacade public List managerSelect(ManagerActionForm managerActionForm);实现接口类的代码:/* ManagerFacade.java*/public class ManagerFacadeImpl implements ManagerFacade private ManagerDao managerDao; public ManagerFacadeImpl() this.managerDao = new ManagerDaoImpl(); public List managerSelect(ManagerActionForm managerActionForm) return this.managerDao.managerSelect(managerActionForm); /利用对象managerDao调用持久层的方法 控制层实现的代码如下:/*ManagerFacade.java*/package com.victor.webtier.managerAction;import org.apache.struts.action.*;import javax.servlet.http.*;import com.victor.domain.ManagerActionForm;import com.victor.service.ManagerFacade;import com.victor.service.ManagerFacadeImpl;import java.io.UnsupportedEncodingException; /加载所需要的类/总管理员全部查看信息public class AdminSelectAction extends

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论