




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
论文新闻发 布系统论文(定稿) 新闻信息发布平台学院和田电大专业班级学号姓名邓斌指导教师教师职称xx年5月20日摘要【摘要】随着计算机科学的发展,数据库技术在I nter中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。 个性化已逐渐成为当今Web应用的潮流。 利用JSP技术开发的网站新闻管理系统,实现了网站新闻的动态管理,因为可以用来动态发布新闻信息,所以使得对信息的管理更加及时、高效,提高了工作效率。 【关键词】Struts组建编程模型、ActionForm的说明、样式层、持久层、服务层、控制层。 由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群。 借此东风,新闻网也迅速发展起来,它内容丰富,涉及到商业、工业、农业、银行、财政、教育、娱乐、信息等各个产业,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。 在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。 1系统分析1.1需求分析通过相关调查,要求网站具有以下功能;通过网络,展示各行业新闻及相关信息。 提供新闻搜索功能。 设置新闻人物投票功能,并统计投票数量。 支持其他网站的友情链接。 为后台管理提供管理入口。 1.2可行性分析新闻发布系统后台对新闻作了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻网时分类查看新闻信息的要求,同时提供新闻信息查询功能,方便浏览者查找相关的新闻信息。 新闻网后台则通过对总管理员设置和管理员添加等模块对网站管理员进行管理,保证了网站的安全性。 2总体设计2.1项目规划新闻网是一个功能完善的新闻类网站,由客户前台新闻浏览和后台新闻管理两大部分组成。 前台功能模块前台主要包括新闻分类、显示新闻详细信息、新闻信息查询、新闻人物投票、友情链接、提供后台登录口。 后台管理模块后台主要包括后台总管理员设置及密码修改、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、链接管理、新闻人物管理、退出后台。 2.2系统功能结构图新闻发布系统前台功能结构,如图1所示。 图1新闻网前台功能结构图新闻网后台功能结构,如图2所示。 图2新闻网后台功能结构图3系统设计3.1设计目标本网站是根据各行业新闻信息分类进行开发设计的,主要实现如下目标新闻网前台功能结构新闻分类新闻详细信息新闻信息查询新闻人物投票友情链接后台登录口新闻网后台功能结构总管理员设置总管理员修改密码添加管理员管理员信息设置新闻类型管理新闻详细类型管理新闻信息管理新闻人物管理链接管理退出后台分类展示各行业新闻。 显示新闻的详细信息。 设置新闻搜索功能模块。 设置新闻人物投票及投票数统计功能。 提供其他网站的友情链接。 3.2开发及运行环境硬件平台CPU P41.8GHz;内存256MB以上。 软件平台操作系统Windows2000;数据库SQL Server2000;开发工具包JDK Version1.4.1;Web服务器Tomcat;浏览器IE5.0,推荐使用IE6.0;分辨率最佳效果1024*768像素。 3.3逻辑结构设计本系统数据库采用SQL server2000数据库,系统数据库名称为db_news。 数据库db_news中包含7张表。 关于数据库中的数据表请参见附录B4网站总体架构4.1网站首页的运行结果网站前台首页的运行结果如图5所示。 图5网站前台首页运行结果网站框架图说明如下表1网站前台首页页面说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeNewWatch.do2功能模块主要用于显示导航模块中的功能linkSelect.do1233内容显示主要用于显示功能模块中的内容dateNews.do?type=今日新闻网站后台首页的运行结果如图6所示。 图6网站后台首页运行结果网站后台首页中的各部分说明如表2所示。 表2网站后台首页页面说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeTopAction.do2功能模块主要用于显示导航模块中的功能left_main.jsp3内容显示主要用于显示功能模块中的内容right_main.jsp4.2类的分布新闻发布系统是利用Struts框架实现的,新闻发布系统中类的分布如图7所示。 213图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 .victor.domain;import org.apache.struts.action.*;public classManagerActionForm extendsActionFormprivate Integer managerID;/在数据库中的流水号private StringmanagerIssueDate;/管理员添加日期private StringmanagerMark;/管理员的标示private StringmanagerName;/管理员帐号private StringmanagerPassword;/管理员密码private StringmanagerRealName;/管理员的真实姓名private StringmanagerType;/管理员的权限public ManagerActionForm()this.managerID=new Integer(-1);this.managerIssueDate=;this.managerMark=;this.managerName=;this.managerPassword=;this.managerRealName=;this.managerType=;public IntegergetManagerID()return managerID;public voidsetManagerID(IntegermanagerID)this.managerID=managerID;.2持久层的方法验证输入的内容是否正确有很多方法,笔者采用的是利用sql语句的方法进行验证输入账号和密码。 对输入的账号及密码判断是否正确。 利用接口类的方法实现的代码如下/*ManagerDao.java*/public interfaceManagerDaopublic ManagerActionForm managerCheck(ManagerActionForm managerActionForm)实现接口的方法的代码如下/*ManagerDaoImpl.java*/核对普通管理员帐号和密码public classManagerDaoImpl implementsManagerDao/实现接口类中的方法用implements加上接口类名public ManagerActionForm managerCheck(ManagerActionForm managerActionForm)ManagerActionForm manager=null;定义一个Object型的数据,初使化为null JDBConnection connection=new JDBConnection();/连接数据库的方法String sql=select*from tb_manager whereName=+managerActionForm.getManagerName()+;tryResultSet 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 interfaceManagerFacadepublic ManagerActionForm managerCheck(ManagerActionForm managerActionForm)实现接口的方法的代码如下/*ManagerFacadeImpl.java*/public classManagerFacadeImpl implementsManagerFacade/实现接口类的方法用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 .victor.webtier.managerAction;/核对帐号和密码public classManagerCheckAction extendsActionprivate ManagerFacademanagerFacade;public ManagerCheckAction()this.managerFacade=new ManagerFacadeImpl();public ActionForwardperform(ActionMapping actionMapping,ActionForm actionForm,HttpServletRequest ServletRequest,HttpServletResponse ServletResponse)Chinese chinese=new Chinese();ManagerActionForm managerActionForm=(ManagerActionForm)actionForm;managerActionForm.setManagerName(chinese.str(ServletRequest.getParameter(managerName);ManagerActionForm manager=this.managerFacade.managerCheck(managerActionForm);/通过对象调用方法if(manager=null)return actionMapping.findForward(managerWrong);/通过manager是空值的话,返回错误页面。 else if(!manager.getManagerPassword().equals(ServletRequest.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 ManagerActionFormadminCheck(ManagerActionForm managerActionForm)实现接口类的方法/*ManagerDaoImpl.java*/public ManagerActionFormadminCheck(ManagerActionForm managerActionForm)ManagerActionForm manager=null;/初始化对象JDBConnection connection=new JDBConnection();String sql=select*from tb_manager whereName=+managerActionForm.getManagerName()+and mark=+managerActionForm.getManagerMark()+;tryResultSet 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 interfaceManagerFacadepublic ManagerActionFormadminCheck(ManagerActionForm managerActionForm);实现接口类的方法/*ManagerFacadeIm.java*/public classManagerFacadeImpl implementsManagerFacadeprivate ManagerDaomanagerDao;public ManagerFacadeImpl()this.managerDao=new ManagerDaoImpl();public ManagerActionFormadminCheck(ManagerActionForm managerActionForm)return this.managerDao.adminCheck(managerActionForm);/调用持久层的方法具体在控制层的代码如下/*ManagerDaoImpl.jsp*/package .victor.webtier.managerAction;import org.apache.struts.action.*;import javax.servlet.*;import .victor.domain.ManagerActionForm;import .victor.service.ManagerFacade;import .victor.service.ManagerFacadeImpl;/核对总管理员帐号和密码public classAdminCheckAction extendsActionprivate ManagerFacademanagerFacade;public AdminCheckAction()this.managerFacade=new ManagerFacadeImpl();public ActionForwardperform(ActionMapping actionMapping,ActionForm actionForm,HttpServletRequest ServletRequest,HttpServletResponse ServletResponse)ManagerActionForm managerActionForm=(ManagerActionForm)actionForm;managerActionForm.setManagerName(ServletRequest.getParameter(Name);/从页面上取值managerActionForm.setManagerMark(总管理员);/取固定的名称ManagerActionFormmanager=this.managerFacade.adminCheck(managerActionForm);if(manager=null)/if判断,做比较return actionMapping.findForward(adminWrong);else if(!manager.getManagerPassword().equals(ServletRequest.getParameter(adminPassWord)return actionMapping.findForward(adminWrong);return actionMapping.findForward(adminRight);上面的类文件中加载了ManagerActionForm类,这个类是属于ActionForm类,相当于JavaBean,在这里主要实现进行取值和赋值的功能。 struts-config.xml的配置的代码如下/*struts-config.xml*/如果用户输入的总管理员的账户和密码不正确,此时jsp页面中将提示用户密码不正确。 实现此功能的jsp代码如下/*adminPasswordFail.jsp*/密码不正确2秒种后从新输入密码2对管理员的查询操作总管理员登录成功后,系统将对除了总管理员以外的所有普通管理员进行查询操作。 此时页面运行结果如图10所示。 图10总管理员查询功能持久层的查询代码如下接口类的代码/*ManagerDao.java*/package .victor.dao;import java.util.List;import .victor.domain.ManagerActionForm;public interfaceManagerDaopublic ListmanagerSelect(ManagerActionForm managerActionForm);/在接口类的查询方法方法实现接口类的代码/*ManagerDaoImpl.java*/查出所有的管理员public ListmanagerSelect(ManagerActionForm managerActionForm)JDBConnection connection=new JDBConnection();/调用连接数据库的方法List list=new ArrayList();/定义一个List容器的对象,去实现ArrayList()中的方法String sql=select*from tb_manager wheremark=+managerActionForm.getManagerMark()+;/有条件的查询语句tryResultSet rs=connection.executeQuery(sql);/调用JDBConnection查询的方法while(rs.next()ManagerActionFormmanager=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 interfaceManagerFacadepublic ListmanagerSelect(ManagerActionForm managerActionForm);实现接口类的代码/*ManagerFacade.java*/public classManagerFacadeImpl implementsManagerFacadeprivate ManagerDaomanagerDao;public ManagerFacadeImpl()this.managerDao=new ManagerDaoImpl();public ListmanagerSelect(ManagerActionForm managerActionForm)return this.managerDao.managerSelect(managerActionForm);/利用对象managerDao调用持久层的方法控制层实现的代码如下/*ManagerFacade.java*/package .victor.webtier.managerAction;import org.apache.struts.action.*;import javax.servlet.*;import .victor.domain.ManagerActionForm;import .victor.service.ManagerFacade;import .victor.service.ManagerFacadeImpl;import java.io.UnsupportedEncodingException;/加载所需要的类/总管理员全部查看信息public classAdminSelectAction extendsActionprivate ManagerFacademanagerFacade;public AdminSelectAction()this.managerFacade=new ManagerFacadeImpl();public ActionForwardperform(ActionMapping actionMapping,ActionForm actionForm,HttpServletRequest ServletRequest,HttpServletResponse ServletResponse)ManagerActionForm managerActionForm=(ManagerActionForm)actionForm;managerActionForm.setManagerMark(普通管理员);ServletRequest.setAttribute(listAdminSelect,managerFacade.managerSelect(managerActionForm);return actionMapping.findForward(adminSelectAction);struts-config.xml的配置/*struts-config.xml*/管理员查询jsp代码的实现/*adminSelect.jsp*/查看全部信息%for(int i=0;i数据库ID帐号真实姓名注册时间管理员类别操作修改删除通过以上的代码就能够实现对所有的管理员的查询功能。 总管理员除了具备查询功能外,还可以修改及删除管理员的信息。 3修改之前的条件查询操作在执行修改之前首先是对要修改的数据进行查询。 样式层所要调用的类是ActionForm,与用户登录调用的actionForm是同一个类,在这里就不做介绍了,实现的过程如下。 具体在持久层的条件查询代码如下接口类的方法的代码/*ManagerDao.java*/public interfaceManagerDaopublic ListadminSelectOne(ManagerActionForm managerActionForm);)实现接口类的方法的代码/*ManagerDaoImpl.java*/总管理员的单独查找,查找的内容在下一页中显示public ListadminSelectOne(ManagerActionForm managerActionForm)ManagerActionFormmanager=null;List list=new ArrayList();JDBConnectionconnection=new JDBConnection();String sql=select*from tb_manager whereID=+managerActionForm.getManagerID()+;/以数据库中的流水号为条件进行查询ResultSet rs=connection.executeQuery(sql);/执行查询的方法trywhile(rs.next()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);catch(SQLException ex)connection.close();return list;具体在服务层的条件查询代码如下接口类的方法的代码/*ManagerFacade.java*/public interfaceManagerFacadepublic ListadminSelectOne(ManagerActionForm managerActionForm);实现接口类的方法的代码/*ManagerFacadeImpl.java*/public classManagerFacadeImpl implementsManagerFacadeprivateManagerDaomanagerDao;public ManagerFacadeImpl()this.managerDao=new ManagerDaoImpl();public ListmanagerSelectOne(ManagerActionForm managerActionForm)return this.managerDao.managerSelectOne(managerActionForm);/实现持久层的方法控制层实现的代码/*例程8-1ManagerFacadeImpl.java*/package .victor.webtier.managerAction;import org.apache.struts.action.*;import j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 猎聘网络面试题库及答案
- 农业产业扶贫项目实施中2025年社会稳定风险评估及对策研究报告
- 快递员的面试题库及答案
- 安全教育培训费用明细表课件
- 安全教育培训评分课件
- 新能源并购重组2025年知识产权评估标准与案例解析
- 安全教育培训计划措施课件
- 新能源企业绿色信贷2025年研发投入风险与机遇分析报告
- 安全教育培训经费与课件
- 2025年城市垃圾分类与填埋气发电技术创新研究报告
- 2025版金融业务合同委托管理协议
- 部队手榴弹使用课件
- 社区网格员考试试题(含答案)
- 2025年宜都市总工会公开招聘乡镇工会协理员3人考试参考题库附答案解析
- 2025版欧派橱柜环保材料购货合同
- 教研组长经验交流会上教学副校长讲话:抓关键见实效干出值当的组长工作
- 2025年云南高考化学真题试卷完全解读(含试卷分析与备考策略)
- 2025年高级中学教师资格考试(美术学科知识与教学能力)历年参考题库含答案详解(5套)
- 2025年广西中考英语试卷+答案解析
- 2025年中国带贴面离心玻璃棉毡数据监测研究报告
- 110kV变电站初步设计与规划方案指南
评论
0/150
提交评论