基于jsp的新闻发布系统_第1页
基于jsp的新闻发布系统_第2页
基于jsp的新闻发布系统_第3页
基于jsp的新闻发布系统_第4页
基于jsp的新闻发布系统_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

毕业设计(论文)任务书 信息工程学院 学院 计算机专业专业计算机三 班 一、毕业设计(论文)题目基于jsp的新闻发布系统的设计与实现二、毕业设计(论文)工作自 2009 年 12 月 14日起至 2009 年 12 月 18 日止。三、毕业设计(论文) 地点: 电子商务实验室 四、毕业设计(论文)内容要求:1本毕业设计的目的 培养学生掌握分析和设计点子商务系统的基本方法,综合运用所学知识,进行初步的系统分析和设计。2毕业设计的任务及要求1)基本要求:使用jsp完成新闻发布系统的设计和实现,模块包括用户管理、新闻的管理等2)创新要求: 使用了设计模式使用了J2EE或ASP.NET3)毕业设计论文编写要求(1)毕业设计报告书一律使用由学校统一印制的封面,采用黑色墨水工整书写,并装订成册。(2)毕业设计装订顺序为:封面、设计任务书(含评语)、设计内容、设计小结4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程(含翻译):40分; (3)完成调试:20分;(4)回答问题:20分。5)参考文献:1.电子商务系统设计与实现 机械工业出版社 厉小军主编 2007年8月2.电子商务系统规划与设计 清华大学出版社 徐天宇 主编 2007年7月3.JSP数据库系统开发完全手册 人民邮电出版社 王国辉等主编2006年3月4.JSP 信息系统开发实例精选 机械工业出版社 赛奎春主编 2006年1月5.SQL Server数据库开发实例解析 机械工业出版社 赛奎春主编 2006年1月6)毕业设计进度安排内容 天数地点选择毕业设计题目,分析课题的要求构思操作方案 1 电子商务实验室设计与编程、调试 1 电子商务实验室写毕业设计报告,提交软件、答辩 1 电子商务实验室学生签名: 2009 年 12 月 14 日毕业设计(论文)评审意见(1)完成原理分析(25分):优()、良()、中()、一般()、差(); (2)设计分析(25分):优()、良()、中()、一般()、差(); (3)完成调试(25分):优()、良()、中()、一般()、差();(4)回答问题(25分):优()、良()、中()、一般()、差();(5)格式规范性及考勤是否降等级:是()、否()评阅人: 职称: 讲师 2009年 12 月 19 日摘要Internet的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群。借此东风,新闻网也迅速发展起来,它内容丰富,涉及到商业、工业、农业、银行、财政、教育、娱乐、信息等各个产业,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。在本次毕业设计中,我就是使用JSP技术实现了新闻发布系统,系统很好的实现了用户的管理和新闻的管理,使得一切新闻都电子化、信息化,与普通新闻媒体相比较有很大的优势。关键词:Internet, 新闻发布,JSP技术目录1.介绍51.1 新闻发布系统简介51.2 新闻发布系统的特征51.3 新闻发布系统分类62.系统规划72.1 系统规划72.2 系统功能结构图73.系统分析与设计83.1系统分析83.2系统设计94.系统总体构架124.1系统首页运行结果124.2类的分布135.系统实现145.1 系统后台主要功能模块实现145.2 系统前台主要功能模块实现186.心得体会237.致谢248.参考文献251.介绍1.1 新闻发布系统简介新闻发布系统(News Release System or Content Management System)又叫做内容管理系统,是一个基于新闻和内容管理的全站管理系统,新闻发布系统是基于B/S模式的WEBMIS系统,本系统可以将杂乱无章的信息(包括文字,图片和影音)经过组织,合理有序地呈现在大家面前.当今社会是一个信息化的社会,新闻作为信息的一部分有着信息量大,类别繁多,形式多样的特点,新闻发布系统的概念就此提出.新闻发布系统的提出使电视不再是唯一的新闻媒体,从此以后网络也充当了一个重要的新闻媒介的功能.简单地说,新闻发布系统就是充当一个网络新闻媒介的功能,主要实现对新闻的分类,上传,审核,发布,模拟了一般新闻媒介的新闻发布的过程,通过不同权限的账号分别实现以上所说功能,当然这些功能也可以是某一个账号全部具有.随着互连网的进一步发展,网络媒体在人们心中的地位进一步提高,新闻发布系统做为网络媒体的核心系统,其重要性是越来越重要:一方面,它提供一个新闻管理和发布的功能;另一方面,现在的新闻发布要求实现与普通的用户实现交互,用户可以很方便地参加一些调查和相关新闻的评论,这一点也是其他一些媒体现在无法做到的(电视,电台等),同时,Internet发展到当今,可以说,只要你上Internet,你就会接触到新闻发布系统,新闻发布系统的用户是相当惊人的,其重要性是不容置疑的,当然这也对新闻发布系统的开发提出了更高的要求.1.2 新闻发布系统的特征与一般的信息系统相比较,新闻发布系统具有以下特征:l 是基于B/S模式下的WEB信息系统,数据库逻辑相对简单,但数据量一般比较庞大;l 用户数量大,服务器压力大,是系统设计中必须考虑的问题之一,而一般的信息系统相对压力要少了很多;l 是一个开放式的系统,前台浏览无须验证.1.3 新闻发布系统分类 1. 前台动态显示的新闻发布系统该类系统大约占60% 的分额,其主要特点是前台采用编程语言动态读取数据库的内容,随时更新,该类系统设计简单,适合大多数中小企业建站需要,通用性不强,一般需要量身定做,不适合大型新闻站点,当用户过多时,编程语言动态读取数据库就势必消耗大量的服务器资源,造成系统运行缓慢,甚至崩溃,同时由于前台新闻是动态从数据库中读取,导致前端用户直接接触到数据库,很容易造成一些不安全的因素,例如:SQL Injection.2、前台静态显示的新闻发布系统该类系统大约占有30%多的市场分额,其主要特点为:前台新闻全部生成HTML静态文件,前台无须读取数据库,浏览器只需要直接下载HTML文件即可浏览新闻,浏览速度得到提高,同时也大大减轻了数据库服务器的压力,该系统后台设计复杂需要处理复杂的模板标签和个模板之间的逻辑,一般采用三层模式实现,该类系统灵活性大,可以通过模板自定义实现界面复杂的前台页面,一般不需要为某一个企业而定做,该系统具有良好的通用性,适合各类新闻站点,同时,系统把前端用户和数据库分割开来,系统的安全性得到大大的提高.3、基于文本的新闻发布系统该系统在市场上占有很少的一部分,主要是把前面的数据库换成了TXT格式的文本文件,该系统主要缺点是文本文件是无序的,管理起来非常麻烦,而且安全性不高,很容易造成数据冗余,因此,目前还没有见到该类系统的商业版本,一般都作为个人用户使用。4. 基于XML数据岛的新闻发布系统该系统是新闻发布系统的一个发展趋势,它用XML数据岛代替了数据库,XML是一个有序的数据文件,比数据库的读取速度更快,但操作起来没有数据库这么方便,但是由于开发技术难度大,该类系统现在市场很少见到。2.系统规划2.1 系统规划新闻网是一个功能完善的新闻类网站,由客户前台新闻浏览和后台新闻管理两大部分组成。l 前台功能模块前台主要包括新闻分类、显示新闻详细信息、新闻信息查询、新闻人物投票、友情链接、提供后台登录口。l 后台管理模块后台主要包括后台总管理员设置及密码修改、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、链接管理、新闻人物管理、退出后台。2.2 系统功能结构图l 新闻发布系统前台功能结构,如图所示。新闻网前台功能结构新闻分类新闻详细信息新闻信息查询新闻人物投票友情链接后台登录口新闻网后台功能结构总管理员设置总管理员修改密码添加管理员管理员信息设置新闻类型管理新闻详细类型管理新闻信息管理新闻人物管理链接管理退出后台l 新闻网后台功能结构,如图所示。3.系统分析与设计3.1系统分析3.1.1需求分析1.通过相关调查,要求网站具有以下功能;2.通过网络,展示各行业新闻及相关信息。3.提供新闻搜索功能。4.设置新闻人物投票功能,并统计投票数量。5.支持其他网站的友情链接。6.为后台管理提供管理入口。3.1.2可行性分析 新闻发布系统后台对新闻作了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻网时分类查看新闻信息的要求,同时提供新闻信息查询功能,方便浏览者查找相关的新闻信息。新闻网后台则通过对总管理员设置和管理员添加等模块对网站管理员进行管理,保证了网站的安全性。 3.1.3业务用例1.系统管理员系统管理员拥有最高权限,负责新闻发布系统的日常运行和维护,该系统给管理员提供的主要功能有:用户管理,新闻管理,新闻栏目管理,评论管理等。系统管理员角色用例图如图所示。 2.已登录的用户已登录的用户是新闻发布系统的使用者。新闻发布系统为他们提供了以下主要功能:用户登录,浏览新闻,发布评论等等。已登录的用户用例图如图所示。3.2系统设计3.2.1.总体业务流程图系统的总业务流程图为:打开页面,对于每一个能够登录到本系统的人都称之为游客,游客可以浏览新闻,但是不能对其进行评论,如果需要得到更多的权限的话,游客必须先登录,如果还未注册,就要先注册,注册成功后,再进行登录。登录成功后系统会自动判断用户是否是系统管理员,如果不是管理员,就只能浏览新闻,发表评论和注销的功能,如果是管理员,就可以对新闻,新闻栏目,用户以及评论进行管理,本系统的业务流程图如图所示。 3.2.2.用户登录时序图3.2.3.添加管理员时序图3.2.4.删除管理员时序图3.2.5新闻管理时序图 4.系统总体构架4.1系统首页运行结果网站前台首页的运行结果如下图所示。网站框架图说明:区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeNewWatch.do2功能模块主要用于显示导航模块中的功能linkSelect.do3内容显示主要用于显示功能模块中的内容dateNews.do?type=今日新闻网站后台首页的运行结果如下图所示:网站后台首页中的各部分说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条typeTopAction.do2功能模块主要用于显示导航模块中的功能left_main.jsp3内容显示主要用于显示功能模块中的内容right_main.jsp4.2类的分布新闻发布系统是利用Struts框架实现的,新闻发布系统中类的分布如下图所示。样式层前台控制层服务层工具层后台控制层持久层类存放的文件夹功能如下表所示。名称功能持久层(dao文件夹)各种方法(增加、删除、修改和查询)的实现样式层(domain文件夹)所存放的类是Actionform类,在类中必须要继承ActionForm(也就是entends ActionForm)服务层(server文件夹)存放的dao层功能的业务的类控制层(webtier文件夹)存放在jsp页面中存在的方法实现的类工具层(tool文件夹)类名为JDBConnection.java(连接数据库的功能)、类名为Chinese.java(字符级转换的类)、类名为SessionLib(用来存在session变量)5.系统实现5.1 系统后台主要功能模块实现5.1.1 后台登陆模块设计在新闻发布系统中,后台管理员分为两种:一个是普通管理员,他可以对新闻类型进行定义,也可以发布新闻、设置投票人数及网站链接;另一个是总管理员,他除了可操作以上功能外,还可以对普通管理员进行设置,总管理员和普通管理员都能通过后台登录页面登录后台。在前台单击“进入后台”超链接,即可进入到后台登录页面,如下图所示。l 管理员登陆控制层的方法:/*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页面中的值一致,返回正确页面。 5.1.2 总管理员设置模块设计总管理员在数据库中是惟一的,总管理员的信息在页面中不会显示出来,在此页面中只能修改自己的密码及对普通管理员进行设置。用户单击“总管理员设置”超链接,进入总管理员设置页面。系统首先对用户输入的账户和密码进行核对。因为并不是所有的管理员都能够有这个权利,所以在SQL语句中应体现惟一性的条件,样式层所要调用的类是ActionForm,跟用户登录时调用的actionForm是同一个类,在这里就不做介绍了。l 总管理员的登录操作登录方法主要用于系统管理员进行系统维护时,作为登录后台时密码验证之用。在用户输入用户账号和密码之后,调用该方法即可验证该用户是否合法。单击“总管理员设置”超链接,进入到总管理员设置页面,实现此超链接的jsp代码如下:/*left_main.jsp*/总管理员设置总管理员页面的运行结果如图所示。总管理员页面所对应的jsp页面代码如下:/* adminPassword.jsp*/ 请输入帐户: 请输入密码:     在上面的jsp页面代码中,action触发的是adminAction.do的方法,它与后台登录的方法相似,只是调用的SQL语句不同。l 对管理员的查询功能总管理员登录成功后,系统将对除了总管理员以外的所有普通管理员进行查询操作。此时页面运行结果如图10所示。核心代码如下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) l 修改之前的条件查询功能 在执行修改之前首先是对要修改的数据进行查询。样式层所要调用的类是ActionForm,与用户登录调用的actionForm是同一个类,在这里就不做介绍了,结果如下图:总管理员在修改信息之前,可以查看以前的信息,这样可以方便用户进行信息修改。l 总结对新闻信息管理的操作,主要应用到添加、删除、修改和查询的功能,在本小节反复的应用到这四种sql语句,只是条件上的不同,只要读者能够正确的写出sql语句,在类中的实现过程就简单了。5.2 系统前台主要功能模块实现5.2.1 今日新闻的显示模块这个功能就是当天的新闻的查看,主要用到了sql语句中的select语句,查询的条件是以时间为主,所用到的actionForm是后台新闻中的样式层的代码。这里就不做介绍了。l 持久层的新闻显示方法取系统时间的方法很多,可以通过类中的java.util.Date的对象取系统时间,也可以通过sql语句中的getDate()方法取时间。具体的代码如下:接口类:/* NewsDao .java*/public interface NewsDao public List dateNews();实现接口类的方法:/*DeleteNewsAction.java*/public class NewsDaoImpl implements NewsDao /当天新闻的查找public List dateNews() JDBConnection connection = new JDBConnection(); NewsActionForm newsForm = null; List list = new ArrayList(); java.util.Date datetime = new java.util.Date(); int year=datetime.getYear()+1900; int month=datetime.getMonth() +1; String date = + year + - + month+ - + datetime.getDate() + +00+:+00+:+00+; String sql = select * from tb_news where IssDate between +date+ and getDate(); ResultSet rs = connection.executeQuery(sql); /执行查询的sql语句,返回到结果集中 try while (rs.next() newsForm = new NewsActionForm(); 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); catch (NumberFormatException ex) catch (SQLException ex) return list; 在查询分析器中取系统时间的方法如图19所示图19 利用getDate()方法取系统时间l 服务层的新闻显示方法接口类:/* NewsFacade.java*/public interface NewsFacade public List dateNews();实现接口类:/* NewsFacade.java*/public class NewsFacadeImpl implements NewsFacade private NewsDao newsDao; public NewsFacadeImpl() this.newsDao = new NewsDaoImpl(); /实现的方法 public List dateNews() return this.newsDao.dateNews(); /调用持久层的方法 l 控制层的新闻显示方法/* NewsFacade.java*/package com.victor.frontStage.newsAction;import org.apache.struts.action.*;import javax.servlet.http.*;import com.victor.service.NewsFacadeImpl;import com.victor.service.NewsFacade;import java.util.List;public class DateNews extends Action private NewsFacade newsFacade; public DateNews() this.newsFacade = new NewsFacadeImpl(); public ActionForward perform(ActionMapping actionMapping,ActionForm actionForm,HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) List list=this.newsFacade.dateNews(); /调用服务层的方法 httpServletRequest.setAttribute(listNew,list); /创建sql值对象 return actionMapping.findForward(dateNews); 通过上述的方法,在jsp页面利用取得对象的名称,在页面中使用即可。5.2.2 输入新闻的关键字查找新闻模块关键字查找新闻就是在文本框中输入新闻的相关内容,执行SQL语句,查找相关新闻信息,其中的下拉列表框是一个查询的动作,实现过程与前面的后台新闻相似,这里就不做介绍了。新闻查找运行结果如图20所示。关键字查找新闻控制层代码实现如下:/*struts-config.xml*/package com.victor.frontStage.newsAction;import org.apache.struts.action.*;import javax.servlet.http.*;import com.victor.domain.NewsActionForm;import com.victor.service.NewsFacade;import com.victor.service.NewsFacadeImpl;import com.victor.tool.Chinese;import java.util.List; /以新闻类型和新闻题目的模糊查询进行的前台操作public class KeyNewsWatch extends Action private NewsFacade newsFacade; public KeyNewsWatch() this.newsFacade = new NewsFacadeImpl(); public ActionForward perform(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) Chinese chinese = new Chinese(); NewsActionForm newsActionForm = (NewsActionForm) actionForm; String key = chinese.str(httpServletRequest.getParameter(key); /取得新闻的关键字 newsActionForm.setNewsType(chinese.str(httpServletRequest.getParameter( type); /取得新闻的类型 List list = this.newsFacade.keyNewsWatch(key, newsActionForm); httpServletRequest.setAttribute(listContent, list); return actionMapping.findForward(keyNewsWatch); 通过上述的方法,在jsp页面利用取得对象的名称,在页面中使用即可。6.心得体会 从12月14日到12月18日,我们进行了为期一周的毕业设计。通过这次毕业设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排

温馨提示

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

评论

0/150

提交评论