毕业设计(论文)-基于JavaEE的在线新闻发布系统的设计与实现.doc_第1页
毕业设计(论文)-基于JavaEE的在线新闻发布系统的设计与实现.doc_第2页
毕业设计(论文)-基于JavaEE的在线新闻发布系统的设计与实现.doc_第3页
毕业设计(论文)-基于JavaEE的在线新闻发布系统的设计与实现.doc_第4页
毕业设计(论文)-基于JavaEE的在线新闻发布系统的设计与实现.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书基于JavaEE的在线新闻发布系统的设计与实现班 级: 学号: 姓 名: 学 院: 专 业: 指导教师: 2013年 6 月基于JavaEE的在线新闻发布系统的设计与实现摘要网络已经成为人们必不可少的一个重要的工具,它深入社会生活的方方面面,包括教育,购物,办公等领域。传统的新闻途径已经无法满足人们的需求,在线新闻发布系统便应运而生。本发布系统分为前台与后台两个部分,后台主要有:管理员登录,新闻管理,新闻类型的管理,用户留言的管理四个模块,前台要实现用户的注册,登录,新闻的搜索,新闻评论几个功能。该系统严格遵循软件开发流程,经过了需求分析,数据库设计,进行了可行性研究等一系列准备工作,力图使该系统成为操作简单,界面美观,使用方便的发布系统。本发布系统采用B/S架构,前台为JSP页面,后台使用MyEclipse为开发工具,数据库使用MySQL,是基于MVC架构模式实现。由管理员实现对新闻的管理。关键词:在线新闻发布,JSP,MVC,MySQLDesign and Realize Online News Publishing System based on JavaEEAbstract Nowadays,the Net Work become an important part in our life. It into every aspect of social life, include education,shopping, consultation and work and etc. The traditional approach to news cannot satisfy peoples demand, so the online news publishing system arise at the historic moment.This system consist of foreground and background. The background mainly contains:the administrator login, news management, the management of news type, the management of users mail.The foreground contains: regist, login, news search, users mail. The development is based on procedure of software development strictly. With the software requirement analysis, the design of database, feasibilitystudy and other job to make the system operate simple, users-friendly interface, use easily.This system based on Browser/Server, foreground use JSP, background use MyEclipse, the database use MySQL. The system based on the model of MVC. Administrator manage the news management.Key Words: Online News Publishing System, JSP, MVC, MySQL第II页 共II页2013届毕业设计说明书目 录1 引言11.1 研究背景11.2 国内外现状11.3 研究目标与内容21.4 论文组织结构22 理论分析32.1 JavaEE平台32.2 MVC模式32.3 JSP技术33 系统的需求分析53.1 系统情况的基本描述53.2 系统功能描述53.2.1 系统的总体功能53.2.2 系统用例63.2.3 数据库的设计74 系统的详细设计104.1 系统功能的模块划分104.1.1 登录104.1.2 注册104.1.3 新闻管理模块114.1.4 留言管理214.1.5 数据库265 系统测试285.1 软件测试的重要性及目的295.2 软件测试的原则295.3 白盒测试305.3.1 登录的白盒测试305.3.2 新闻添加的白盒测试315.4 黑盒测试315.4.1 功能测试316 结论33参 考 文 献34致 谢351 引言1.1 研究背景现在我们处于一个信息量高度膨胀的时代,当今,人们处理的信息越来越多,几乎比过去翻了几翻,而人们对于信息的要求也越来越多,于是,人们对信息处理工具计算机的要求越来越高。不仅需要计算机的处理速度越来越快,而且要求计算机的存储量也越来越大。数据处理手工操作,工作量大,出错率高,出错后不易更改1。因此,世界上最大的计算机网络Internet为教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域带来了极大的方便。在当前社会,信息显然成为了隐型的财富,单纯的电视,报纸等大众途径已无法满足人们的信息需求2。网络的普及使人们在日常生活中越来越多地使用这项新途径来为自己的工作和生活服务通过网络来获取信息的需求越来越大,越来越多。出于此种考虑,网络开发者们提出“在线的新闻发布系统”,该系统能够实现在线更新新鲜的新闻、管理新闻分类等功能,此外,管理员可在线对后台进行管理,例如新闻的编辑、删除等操作,以保证新闻的及时、准确性。1.2 国内外现状目前,网络新闻的丰富,多样,及时性使得传统的新闻媒体遭受到了重大的冲击,有人预测,在未来,网络新闻将会代替传统的报业新闻。传统的新闻媒体正在全球衰退,在美国,默多克旗下的175家报纸正在面临适应网络新闻分食新闻业的现实3。在国内,我国的传统新闻界也面临着转型的危机,网络的开放性使得人们对报纸等传统媒体的购买,观看量越来越少,这使得广播,报纸业面临巨大危机。虽然当前我国的网络制度还不够完善,新闻来源的真实性,可靠性受到了质疑,但不可否认,新闻的发展将会朝着数字技术,网络技术发展。而且,我们国家正在积极指定网络环境标准,对网络环境进行监察,我相信未来的网络新闻一定会有光明的前景。而随着网络新闻的快速发展,如何快速,高效的发布新闻将会成为各大新闻网站的关注焦点,便捷的在线的新闻发布也将会形成一股潮流,一种趋势,到时,我相信便捷的,易操作的新闻发布平台将会更加及时有效地为大家奉送上精美的世界资讯。1.3 研究目标与内容在线新闻发布系统是一个基于web的实时在线新闻发布,系统的目标是实现一个基于Internet的开放的,多元的新闻发布系统,建立一个便捷的,友好的,交互的在线新闻发布系统。该系统的主要采用MVC三层架构,基于浏览器/服务器结构,用Java语言实现后台的新闻管理,新闻类型的管理,前台用JSP实现页面的动态化,形成一个完整的在线新闻发布系统。1.4 论文组织结构本文共分为六章,各个章主要内容如下:第一章, 理论分析:对该系统用到相关技术进行说明,指出他们的优缺点;第二章, 系统的需求分析:对该系统进行需求分析,分析出用户的需求,完善系统的功能,力求使系统拥有丰富的功能。 第三章, 系统的详细设计:对系统进行细致的分析,将系统分模块,将每个模块的逻辑结构整理清楚。第四章, 系统测试:测试是保证软件质量的必须的步骤。这章描述软件测试的方法与结果分析。第五章, 结论:软件完整开发所取得的成果及得到的经验总结。第六章, 结束语:开发过程的感想感言。2 理论分析2.1 JavaEE平台JavaEE是一套方案总称,它包含了J2EE,J2SE,JSME三个平台,JavaEE的核心是EJB,将一些EJB组件组合起来,可以方便、快捷地建构起分布式应用程序4。EJB规范的优点是简化分布式应用程序开发复杂性,你不必太担心事务处理、资源管理、多线程等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。而且EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或JDBC等服务,从而增强了分布式应用程序的可扩展性和性能,正是由于EJB,使得JavaEE有着可靠性、可管理性和可移植性的优点。JavaEE一般分为四层:客户端,web层,业务逻辑层,企业信息层,是用来管理组件行为的一个集合工具。JavaEE已经成为一个具有优秀兼容性的,广泛应用的开发平台,相信在未来,它可以走的更远5。2.2 MVC模式MVC是模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。其中,模型层是用于实现系统的业务逻辑部分,主要的实现方法为通过EJB和JavaBean实现;视图层是指的与用户发生交互的部分,可以通过JSP来实现;控制层用于沟通模型层与视图层,它用于解释用户的输入并将它们映射为模型层可执行的操作,还可以分派用户的请求并选择恰当的视图以用于显示。MVC将将视图和控制层,模型层分开提高了程序的重用性,方便程序员轻松实现对应用程序的构造。而且,如果给定一些可重用的模型和视图,控制器可根据用户需求选择模型并进行处理,然后选择视图将处理结果显示给用户。MVC是一种设计模式,它强制性的把程序中的数据输入,处理,输出分开,使得应用程序分为三个核心部件:模型,视图,控制器,他们之间各自处理各自的事物。由于MVC是应用程序具有很高的重用性,因此,MVC被广泛的应用于电子商务网站的建设。2.3 JSP技术JSP全名为Java server page,它是一种动态网页技术标准,它是在传统的网页HTML文件中插入Java程序(Scriptlet)和JSP标记(tag),从而形成JSP文件。JSP的根本是一个简化的Servlet设计,它使得html语法中的Java扩张得以实现,JSP是在服务器端执行的,服务器端返回给客户端一个html文件,使得客户端只要有浏览器就能浏览网页。JSP具有以下几个优点:(1) 开放的技术:JSP技术基于平台和服务器的相互独立,有服务器的组件和数据库产品开发商提供广泛的、专门的、各种工具包的技术支持。(2) 平台和服务器的独立性:JSP继承了Java的优点,它的代码可运行在任何符合JAVA语法结构的环境中。这样JSP就能够运行在多种WEB服务器上并支持开发商提供的各种工具包。(3)JSP标记可扩充性:JSP技术为开发者扩展了JSP标记,其充分利用与XML兼容的标记技术强大的功能,使得对脚本语言的依赖程度大大减少。(4)JSP跨平台的可重用性:JSP组件(EJB,JavaBean或定制的JSP标记)都是跨平台可重用的6。JSP简单易用,完全的面向对象,具有平台无关性且安全可靠,而且JSP实现了在HTML代码中使用Java代码,使HTML的功能得到扩展。他的这些特点使得JSP技术在全球范围内得到了广泛的应用。3 系统的需求分析现代社会是一个信息化的社会,现代人分分钟离不开信息,网络的跨地域性和包容性为信息时代提供了不可代替的新闻信息。在线的新闻阅读已经渐渐成为人们摄取信息的主要途径,故在线的新闻发布成为了各大新闻网站必不可少的工作利器。满足大家对新闻的关注,就是我要实现的。3.1 系统情况的基本描述在线的新闻发布系统主要目标是实现新闻管理的便捷,及时性,力求用软件来代替大量的人工。该系统分为两个部分:前台与后台。前台是新闻浏览平台,主要实现新闻的浏览,新闻评价,用户的注册,登陆。后台是新闻管理平台,主要实现新闻的编辑,添加,删除,用户留言管理等管理功能,管理员的登陆。3.2 系统功能描述3.2.1 系统的总体功能在线新闻发布系统的描述,如图3.1:用 户管理员注册新闻管理用户管理账号管理新闻搜索在线新闻发布系统图3. 1 系统功能分布图系统角色:1.游客:浏览新闻,查看新闻评论,注册用户,新闻搜索;2.用户:浏览新闻,对新闻进行评论,登录,密码修改,新闻搜索等;3.管理员:新闻编辑,添加,删除,用户留言的管理,新闻类型的管理,密码修改等。系统的类图,如下(图3. 2):图3.2 系统的类图3.2.2 系统用例该系统主要由两个角色:管理员,用户。下面为管理员的用例图(如图3. 3):图3.3 管理员用例图用户的用例图(如图3.4):图3.4 用户用例图3.2.3 数据库的设计数据库使用的是MySQL,MySQL是一个关系型数据库管理系统,关联数据库将数据保存于不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度而且灵活性也得到了提高7。MySQL是一种开源的数据库,它具有体积小,速度快,成本低的优点,由MySQL+Apache+Jsp开发环境被广泛的应用于小型的Internet的开发项目5。现如今SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言。使用SQL语言将使存取或更新信息变得十分容易,你可以直接使用SQL从网站上查询相关的信息。MySQL的快速性和灵活性足以满足一个网站的信息管理工作。其数据库与用户端之间的接口程序可以使用CGI进行数据通信。同时,MySQL还是一个多用户、多线程的数据库,是客户机/服务器结构的应用,由一个服务器守护程序和很多不同的客户程序和库组成。MySQL具有以下的特点:可以同时处理几乎不限数量的用户;处理多达50,000,000以上的记录;命令执行速度快;简单有效的用户授权系统。MySQL和其他的数据库比起来虽然规模小,功能有限但由于其开源,速度快等特点,还是受到了市场的欢迎8。在线新闻发布系统数据库设计如下:表3.1 用户表(db_users)名称类型大小要求Uid(用户ID)Int2自增长;主键(key)Uname(用户名)varchar20Not-nullUpass(用户密码)Varchar20Not-nullUemail(用户邮箱)Varchar50Usex(用户性别)Char2表3.2 管理员表(db_managers)名称类型大小要求Mid(管理员ID)Int2自增长;keyMname(管理员名)Varchar10Not-nullMpass(管理员密码)Varchar20Not-null表3.3 新闻类型表(db_newstype)名称类型大小要求Tid(类型ID)Int4KeyTname(新闻类型名称)Varchar10Not-null表3.4 留言表(db_message)名 称类型大小要求sId(留言编号)int4Uname (用户ID)varchar20Primary-keyNid(留言新闻的ID)int4Primary-keyScontent(留言的内容)varchar50Not-nullSdate(留言的时间)datestamp表3.5 新闻表名称类型大小要求Nid(新闻编号)Int2N_tid(新闻所属类型)Int2Primary_keyNtitle(新闻标题)Varchar50Not-nullNcontent(新闻内容)Varchar5000Not-nullNtime(新闻发布时间)Datestamp4 系统的详细设计4.1 系统功能的模块划分在线新闻发布系统在总体上分为了前台,后台两部分:前台:新闻列表,新闻搜索,新闻评论,登录,注册,密码修改五个模块;后台:管理员登录,管理员的添加,新闻管理,新闻类型管理,用户评论管理,密码修改四个模块;4.1.1 登录登录包括了管理员的登陆与用户的登录,首先点击登录进入JSP登录界面,输入用户名,密码,JSP将用户名,密码提交至action处理,经过系统执行select的SQL语句进行核实比对后返回相应的响应,若用户名,密码正确,则进入前台或后台首页,并显示“用户名,欢迎您!”,如果用户名不存在或密码不正确,则显示失败或转入注册界面,下面是登录模块的流程图(图4.1):图4.1 登录模块的流程图4.1.2 注册本系统中以游客身份登录不可以留言,所以用户需要注册一个用户,游客点击注册按钮,进入注册页面,输入用户名,密码,邮箱等即可完成注册。在JSP提交表单时,会先进行一个非空验证,用户名,密码不能为空,email的格式验证。将表单信息交到action,后台的程序会进行用户名唯一性的验证,如果是唯一的,系统执行insert的SQL语句将信息录入数据库中保存,并返回成功,客户端可以看到注册成功的页面,如果验证失败,会返回失败信息,通知用户重新输入相的信息。下图是注册的流程图(图4.2):图4.2 注册模块的流程图4.1.3 新闻管理模块在线新闻发布系统的核心模块就是新闻管理模块,该模块要实现新闻的添加,编辑,删除等相关操作,新闻管理的操作如下:1.添加新闻信息操作:l点击添加新闻按钮,输入需要添加新闻的内容。包括新闻的标题、内容、分类等。验证管理员输入的新闻的标题、内容、分类等是否符合新闻数据库表中字段定义。若不符合则提示输入有误。若成功,则提示用户信息添加成功并更新用户数据库表的信息。(如图4.3)图4.3 添加新闻的流程图截图(图4.4):图4.4 添加新闻的截图相应代码如下:addnews.jsp: base href= 新闻添加 新闻题目:$sessionScope.error 新闻类型: % List lnt1=(List)request.getAttribute(lnt1); if(lnt1!=null) for(Newstype nt:lnt1) % 发布时间: 新闻内容: Deal_news:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String type=request.getParameter(type); Newsservice nservice=new Newsservice(); Ntservice nts1=new Ntservice(); if(add.equals(type) News n=nservice.getParam(request); try /新闻添加 boolean flag=nservice.unique(n.getNtitle(); if(!flag)nservice.addnews(n); else request.getSession().setAttribute(error, 该新闻名已存在);request.getRequestDispatcher(deal_newstype?type=show).forward(request, response); catch (SQLException e) e.printStackTrace(); /新闻列表 if(list.equals(type) List newslist; int RowNum=nservice.getRN();/总记录数 System.out.println(总记录数为:+RowNum); int pageCount=nservice.getPage(RowNum);/新闻总页数 int pagec=nservice.getPc(request);/当前页面 HttpSession session=request.getSession(); session.setAttribute(pagec, pagec); session.setAttribute(RowNum, RowNum); session.setAttribute(pageCount, pageCount);try newslist = nservice.listnews(pagec,pageCount);request.setAttribute(newslist, newslist); request.getRequestDispatcher(newslist.jsp).forward(request, response); catch (SQLException e) e.printStackTrace(); /新闻删除 if(delete.equals(type) int nid=Integer.parseInt(request.getParameter(nid); System.out.println(要删除的是+nid); try nservice.delete(nid);request.getRequestDispatcher(deal_news?type=list&pagec=1).forward(request, response); catch (SQLException e) e.printStackTrace(); if(look.equals(type) /新闻查看 int nid=Integer.parseInt(request.getParameter(nid); try News ns1=nservice.edit(nid);List lnt1=nts1.typelist();request.setAttribute(ns1, ns1);request.setAttribute(lnt1, lnt1);request.getRequestDispatcher(edit.jsp).forward(request, response); catch (SQLException e) e.printStackTrace(); 2.修改新闻信息点击修改新闻按钮。包括新闻的标题、内容、分类。检验管理员输入的新闻的标题、内容、分类等是否符合用户数据库表中字段定义。若不符合则提示输入有误。如果记录已经存在,则进行修改操作,输入新字段,并根据用户数据库表中对应字段的定义检查输入是否合法,如果输入有错误则进行提示。如果输入正确,执行UPDATE的SQL语句,更新用户数据库表中所对应的记录。 3.删除新闻点击删除新闻按钮。选中所要删除的新闻,点击删除,弹出对话框,询问是否删除,确定后,系统执行delete的SQL语句来执行删除操作。若成功,提示删除成功。若失败,提示删除失败。截图(图4.5):图4.5 新闻列表图代码如下:Newslist.jsp:新闻列表 function confirm() alert(您确定要删除吗?); return true; 新闻列表 全选    添加   删除    编辑     新闻ID 新闻类型 新闻发布时间 新闻标题 基本操作 %List lnews=(List)request.getAttribute(newslist); if(lnews!=null) for(News n:lnews) % a href=deal_news?type=delete&nid= onclick=return confirm();删除 | a href=deal_news?type=look&nid=查看     共有 条记录,当前第 页,共 $sessionScope.pageCount 页 首页 a href=deal_news?type=list&pagec=上一页 a href=deal_news?type=list&pagec=下一页 尾页 4.1.4 留言管理留言管理主要是实现对用户留言的基本管理,因为后台的管理人员不需要对用户的留言进行回复,只需要检查用户的留言是否符合国家相关要求,因此,只需要实现对留言的删除功能(如图4.6)。图4.6 留言界面相应代码如下:Servlet:commentServicecs=new commentService();if(load.equals(type) /添加评论 Comment com=cs.getComment(request);try cs.save(com);request.setAttribute(note2,评论成功!);request.getRequestDispatcher(success.jsp).forward(request, response); catch (SQLException e) e.printStackTrace(); if(list.equals(type) /评论列表intnid=Integer.parseInt(request.getParameter(nid);try Listlc=cs.list(nid);request.setAttribute(lc, lc);request.getRequestDispatcher(comment.jsp).forward(request, response); catch (SQLException e) e.printStackTrace(); if(listall.equals(type) /所有留言的列表try Listltc=cs.getAll();request.setAttribute(ltc, ltc);request.getRequestDispatcher(comlist.jsp).forward(request, response); catch (SQLException e) e.printStackTrace(); if(delete.equals(type) /删除留言intcid=Integer.parseInt(request.getParameter(cid);try cs.del(cid);request.getRequestDispatcher(commentServlet?type=listall).forward(request, response); catch (SQLException e) e.printStackTrace(); Service:public Comment getComment(HttpServletRequest request) /添加评论intnid=Integer.parseInt(request.getParameter(nid);String text=request.getParameter(comment);String uname=request.getSession().getAttribute(uname).toString();System.out.println(内容是:+text);Comment com=new Comment();com.setComment(text);com.setNid(nid);com.setUname(uname);return com;public void save(Comment com) throws SQLException cd.save(com);public List list(intnid) throws SQLException /评论列表returncd.list(nid);public ListgetAll() throws SQLException /所有评论returncd.getAll();public void del(intcid) throws SQLException /删除评论cd.

温馨提示

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

评论

0/150

提交评论