• 631.00 KB
  • 16页

《新闻发布系统》网站项目报告书模版

  • 16页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'北京信息科技大学设计型实验项目报告书新闻发布系统网站项目报告书课程名称:web程序设计与网站建设系别:信息系统系专业:管理科学学号:05281xx姓名:2007年6月21日–16– 北京信息科技大学设计型实验项目报告书目录0背景介绍21系统分析31.1需求分析31.2可行性分析32总体设计32.1项目规划32.2系统功能结构图33系统设计43.1设计目标43.2开发及运行环境43.3逻辑结构设计44网站总体架构44.1网站首页的运行结果45网站后台主要功能模块设计65.1后台登录模块设计65.2总结96网站前台主要功能模块设计106.1今日新闻的显示106.2输入新闻的关键字查找新闻127小结13附录A数据表14–16– 北京信息科技大学设计型实验项目报告书0背景介绍Internet的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群。借此东风,新闻网也迅速发展起来,它内容丰富,涉及到商业、工业、农业、银行、财政、教育、娱乐、信息等各个产业,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。–16– 北京信息科技大学设计型实验项目报告书1系统分析1.1需求分析通过相关调查,要求网站具有以下功能;通过网络,展示各行业新闻及相关信息。提供新闻搜索功能。设置新闻人物投票功能,并统计投票数量。支持其他网站的友情链接。为后台管理提供管理入口。1.2可行性分析新闻发布系统后台对新闻作了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻网时分类查看新闻信息的要求,同时提供新闻信息查询功能,方便浏览者查找相关的新闻信息。新闻网后台则通过对总管理员设置和管理员添加等模块对网站管理员进行管理,保证了网站的安全性。2总体设计2.1项目规划新闻网是一个功能完善的新闻类网站,由客户前台新闻浏览和后台新闻管理两大部分组成。前台功能模块前台主要包括新闻分类、显示新闻详细信息、新闻信息查询、新闻人物投票、友情链接、提供后台登录口。后台管理模块后台主要包括后台总管理员设置及密码修改、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、链接管理、新闻人物管理、退出后台。2.2系统功能结构图新闻发布系统前台功能结构,如图1所示。新闻网前台功能结构新闻分类新闻详细信息新闻信息查询新闻人物投票友情链接后台登录口图1新闻网前台功能结构图新闻网后台功能结构,如图2所示。–16– 北京信息科技大学设计型实验项目报告书新闻网后台功能结构总管理员设置总管理员修改密码添加管理员管理员信息设置新闻类型管理新闻详细类型管理新闻信息管理新闻人物管理链接管理退出后台图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张表。关于数据库中的数据表请参见附录B4网站总体架构4.1网站首页的运行结果网站前台首页的运行结果如图5所示。–16– 北京信息科技大学设计型实验项目报告书231图5网站前台首页运行结果网站框架图说明如下:表`1网站前台首页页面说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeNewWatch.do2功能模块主要用于显示导航模块中的功能linkSelect.do3内容显示主要用于显示功能模块中的内容dateNews.do?type=今日新闻网站后台首页的运行结果如图6所示。–16– 北京信息科技大学设计型实验项目报告书312图6网站后台首页运行结果网站后台首页中的各部分说明如表2所示。表2网站后台首页页面说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeTopAction.do2功能模块主要用于显示导航模块中的功能left_main.jsp3内容显示主要用于显示功能模块中的内容right_main.jsp5网站后台主要功能模块设计5.1后台登录模块设计在新闻发布系统中,后台管理员分为两种:一个是普通管理员,他可以对新闻类型进行定义,也可以发布新闻、设置投票人数及网站链接;另一个是总管理员,他除了可操作以上功能外,还可以对普通管理员进行设置,总管理员和普通管理员都能通过后台登录页面登录后台。在前台单击“进入后台”超链接,即可进入到后台登录页面,如图8所示。–16– 北京信息科技大学设计型实验项目报告书图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.持久层的方法–16– 北京信息科技大学设计型实验项目报告书验证输入的内容是否正确有很多方法,笔者采用的是利用sql语句的方法进行验证输入账号和密码。对输入的账号及密码判断是否正确。利用接口类的方法实现的代码如下:/*********************************ManagerDao.java*******************************/publicinterfaceManagerDao{publicManagerActionFormmanagerCheck(ManagerActionFormmanagerActionForm)}实现接口的方法的代码如下:/*******************************ManagerDaoImpl.java*****************************///核对普通管理员帐号和密码publicclassManagerDaoImplimplementsManagerDao{//实现接口类中的方法用implements加上接口类名publicManagerActionFormmanagerCheck(ManagerActionFormmanagerActionForm){ManagerActionFormmanager=null;定义一个Object型的数据,初使化为nullJDBConnectionconnection=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–16– 北京信息科技大学设计型实验项目报告书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.2总结对新闻信息管理的操作,主要应用到添加、删除、修改和查询的功能,在本小节反复的应用到这四种sql语句,只是条件上的不同,只要读者能够正确的写出sql语句,在类中的实现过程就简单了。–16– 北京信息科技大学设计型实验项目报告书6网站前台主要功能模块设计6.1今日新闻的显示这个功能就是当天的新闻的查看,主要用到了sql语句中的select语句,查询的条件是以时间为主,所用到的actionForm是后台新闻中的样式层的代码。这里就不做介绍了。1.持久层的新闻显示方法取系统时间的方法很多,可以通过类中的java.util.Date的对象取系统时间,也可以通过sql语句中的getDate()方法取时间。具体的代码如下:接口类:/************************NewsDao.java****************************/publicinterfaceNewsDao{publicListdateNews();}实现接口类的方法:/************************DeleteNewsAction.java****************************/publicclassNewsDaoImplimplementsNewsDao{//当天新闻的查找publicListdateNews(){JDBConnectionconnection=newJDBConnection();NewsActionFormnewsForm=null;Listlist=newArrayList();java.util.Datedatetime=newjava.util.Date();intyear=datetime.getYear()+1900;intmonth=datetime.getMonth()+1;Stringdate=""+year+"-"+month+"-"+datetime.getDate()+""+00+":"+00+":"+00+"";Stringsql="select*fromtb_newswhereIssDatebetween""+date+""andgetDate()";ResultSetrs=connection.executeQuery(sql);//执行查询的sql语句,返回到结果集中try{while(rs.next()){newsForm=newNewsActionForm();newsForm.setNewID(Integer.valueOf(rs.getString(1)));newsForm.setNewTitle(rs.getString(2));newsForm.setNewContent(rs.getString(3));newsForm.setNewsType(rs.getString(4));newsForm.setNewsStyle(rs.getString(5));newsForm.setNewIssueDate(rs.getString(6));//按顺序取字段中的数据list.add(newsForm);}}–16– 北京信息科技大学设计型实验项目报告书catch(NumberFormatExceptionex){}catch(SQLExceptionex){}returnlist;}}在查询分析器中取系统时间的方法如图19所示图19利用getDate()方法取系统时间2.服务层的新闻显示方法接口类:/************************NewsFacade.java****************************/publicinterfaceNewsFacade{publicListdateNews();}实现接口类:/************************NewsFacade.java****************************/publicclassNewsFacadeImplimplementsNewsFacade{privateNewsDaonewsDao;publicNewsFacadeImpl(){this.newsDao=newNewsDaoImpl();//实现的方法}publicListdateNews(){returnthis.newsDao.dateNews();//调用持久层的方法}}3.控制层的新闻显示方法/************************NewsFacade.java****************************/packagecom.victor.frontStage.newsAction;importorg.apache.struts.action.*;importjavax.servlet.http.*;importcom.victor.service.NewsFacadeImpl;importcom.victor.service.NewsFacade;importjava.util.List;publicclassDateNewsextendsAction{privateNewsFacadenewsFacade;–16– 北京信息科技大学设计型实验项目报告书publicDateNews(){this.newsFacade=newNewsFacadeImpl();}publicActionForwardperform(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse){Listlist=this.newsFacade.dateNews();//调用服务层的方法httpServletRequest.setAttribute("listNew",list);//创建sql值对象returnactionMapping.findForward("dateNews");}}6.2输入新闻的关键字查找新闻关键字查找新闻就是在文本框中输入新闻的相关内容,执行SQL语句,查找相关新闻信息,其中的下拉列表框是一个查询的动作,实现过程与前面的后台新闻相似,这里就不做介绍了。新闻查找运行结果如图20所示。图20关键字查询关键字查找新闻控制层代码实现如下:/****************************struts-config.xml*********************************/packagecom.victor.frontStage.newsAction;importorg.apache.struts.action.*;importjavax.servlet.http.*;importcom.victor.domain.NewsActionForm;importcom.victor.service.NewsFacade;importcom.victor.service.NewsFacadeImpl;importcom.victor.tool.Chinese;importjava.util.List;//以新闻类型和新闻题目的模糊查询进行的前台操作publicclassKeyNewsWatchextendsAction{–16– 北京信息科技大学设计型实验项目报告书privateNewsFacadenewsFacade;publicKeyNewsWatch(){this.newsFacade=newNewsFacadeImpl();}publicActionForwardperform(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse){Chinesechinese=newChinese();NewsActionFormnewsActionForm=(NewsActionForm)actionForm;Stringkey=chinese.str(httpServletRequest.getParameter("key"));//取得新闻的关键字newsActionForm.setNewsType(chinese.str(httpServletRequest.getParameter("type")));//取得新闻的类型Listlist=this.newsFacade.keyNewsWatch(key,newsActionForm);httpServletRequest.setAttribute("listContent",list);returnactionMapping.findForward("keyNewsWatch");}}Struts-config.xml的配置如下:/****************************struts-config.xml*********************************/通过上述的方法,在jsp页面利用<%Listlist=(List)request.getAttribute("listContent");%>取得对象的名称,在页面中使用即可。7小结一个功能比较完备的新闻发布系统的实例就构建完毕了。由于篇幅的限制,文中只讲解了部分源代码。通过本课程综合上机实验,进行软件开发,无论从技术上还是从编程经验上,我都得到了很大收获。附录A数据表(1)tb_Link(链接其他网站表)–16– 北京信息科技大学设计型实验项目报告书链接其他网站表主要用于保存其他网站信息。表tb_Link的结构如表B.1所示。表B.1表tb_Link的结构字段名数据类型长度是否主键描述IDint4否数据库流水号Namevarchar50否链接网站名称Addressvarchar50否链接网站地址IssueDatedatetime8否链接网站发布的日期(2)manager(后台管理员设置表)后台管理员设置表主要用于保存后台管理员信息。表manager的结构如表B.2所示。表B.2表manager的结构字段名数据类型长度是否主键描述IDint4否数据库流水号Namevarchar50否管理员帐号Passwordvarchar50否管理员密码RealNamevarchar50否管理员真实姓名IssueDatedatetime8否管理员注册时间markvarchar50否管理员标识(3)tb_news(新闻管理表)新闻管理表主要用于保存各类新闻信息内容。表tb_news的结构如表B.3所示。表B.3表tb_news的结构字段名数据类型长度是否主键描述IDint4否数据库流水号Titlevarchar100否新闻标题Contenttext16否新闻内容Typevarchar100否新闻类型Stylevarchar50否新闻详细类型IssDatesmalldatetime4否新闻发布日期(4)tb_newsType(新闻类别表)新闻类别表主要用于保存新闻类别信息。表tb_newsType的结构如表B.4所示。表B.4tb_newsType的结构字段名数据类型长度是否主键描述IDint4否数据库流水号–16– 北京信息科技大学设计型实验项目报告书TypeNamevarchar50否新闻类型名称DateTimedatetime8否新闻类型建立日期(5)tb_Vote(新闻人物投票表)新闻人物投票表主要用于保存新闻人物投票信息。表tb_Vote的结构如表B.5所示。表B.5表tb_Vote的结构字段名数据类型长度是否主键描述IDint4否数据库流水号Namevarchar50否新闻人物姓名Addressvarchar50否新闻人物地址Countryvarchar50否新闻人物籍贯Jobvarchar50否新闻人物工作Remarkvarchar50否新闻人物备注Numberint4否新闻人物票数–16–'