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

下载本文档

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

文档简介

中北大学2013届毕业设计说明书毕业设计说明书基于JavaEE的在线新闻发布系统的设计与实现班 级: 学号: 软件学院姓 名: 软件开发与测试学 院: 专 业: 指导教师: 2013年 6 月在线新闻发布系统摘要网络已经成为人们必不可少的一个重要的工具,它深入社会生活的方方面面,包括教育,购物,办公等领域。传统的新闻途径已经无法满足人们的需求,在线新闻发布系统便应运而生。本发布系统分为前台与后台两个部分,后台主要有:管理员登录,新闻管理,新闻类型的管理,用户留言的管理四个模块,前台要实现用户的注册,登录,新闻的搜索,新闻评论几个功能。该系统严格遵循软件开发流程,经过了需求分析,数据库设计,进行了可行性研究等一系列准备工作,力图使该系统成为操作简单,界面美观,使用方便的发布系统。本发布系统采用B/S架构,前台为JSP页面,后台使用MyEclipse为开发工具,数据库使用MySQL,是基于MVC架构模式实现。由管理员实现对新闻的管理。关键词:在线新闻发布,JSP,MVC,MySQL全套设计加扣 3012250582Online News Publishing SystemAbstractNowadays,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, MySQLII目 录第一章 引言11.1 研究背景11.2 国内外现状11.3 研究目标与内容21.4 论文组织结构2第二章 理论分析32.1 JavaEE平台32.2 MVC模式32.3 JSP技术3第三章 系统的需求分析53.1 系统情况的基本描述53.2 系统功能描述53.2.1 系统的总体功能53.2.2 系统用例63.2.3 数据库的设计7第四章 系统的详细设计104.1 系统功能的模块划分104.1.1 登录104.1.2 注册104.1.3 新闻管理模块11第五章 系统测试225.1 软件测试的重要性及目的225.2 软件测试的原则235.3 白盒测试235.3.1 登录的白盒测试235.3.2 新闻添加的白盒测试245.4 黑盒测试245.4.1 功能测试25第六章 结论266.1 结论26参考文献27致谢语28第一章 引言1.1 研究背景现在我们处于一个信息量高度膨胀的时代,当今,人们处理的信息越来越多,几乎比过去翻了几翻,而人们对于信息的要求也越来越多,于是,人们对信息处理工具计算机的要求越来越高。不仅需要计算机的处理速度越来越快,而且要求计算机的存储量也越来越大。数据处理手工操作,工作量大,出错率高,出错后不易更改。因此,世界上最大的计算机网络Internet为教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域带来了极大的方便。在当前社会,信息显然成为了隐型的财富,单纯的电视,报纸等大众途径已无法满足人们的信息需求。网络的普及使人们在日常生活中越来越多地使用这项新途径来为自己的工作和生活服务,通过网络来获取信息的需求越来越大,越来越多。出于此种考虑,网络开发者们提出“在线的新闻发布系统”,该系统能够实现在线更新新鲜的新闻、管理新闻分类等功能,此外,管理员可在线对后台进行管理,例如新闻的编辑、删除等操作,以保证新闻的及时、准确性。1.2 国内外现状目前,网络新闻的丰富,多样,及时性使得传统的新闻媒体遭受到了重大的冲击,有人预测,在未来,网络新闻将会代替传统的报业新闻。传统的新闻媒体正在全球衰退,在美国,默多克旗下的175家报纸正在面临适应网络新闻分食新闻业的现实。在国内,我国的传统新闻界也面临着转型的危机,网络的开放性使得人们对报纸等传统媒体的购买,观看量越来越少,这使得广播,报纸业面临巨大危机。虽然当前我国的网络制度还不够完善,新闻来源的真实性,可靠性受到了质疑,但不可否认,新闻的发展将会朝着数字技术,网络技术发展。而且,我们国家正在积极指定网络环境标准,对网络环境进行监察,我相信未来的网络新闻一定会有光明的前景。而随着网络新闻的快速发展,如何快速,高效的发布新闻将会成为各大新闻网站的关注焦点,便捷的在线的新闻发布也将会形成一股潮流,一种趋势,到时,我相信便捷的,易操作的新闻发布平台将会更加及时有效地为大家奉送上精美的世界资讯。1.3 研究目标与内容在线新闻发布系统是一个基于web的实时在线新闻发布,系统的目标是实现一个基于Internet的开放的,多元的新闻发布系统,建立一个便捷的,友好的,交互的在线新闻发布系统。该系统的主要采用MVC三层架构,基于浏览器/服务器结构,用Java语言实现后台的新闻管理,新闻类型的管理,前台用JSP实现页面的动态化,形成一个完整的在线新闻发布系统。1.4 论文组织结构本文共分为六章,各个章主要内容如下:第一章, 理论分析:对该系统用到相关技术进行说明,指出他们的优缺点;第二章, 系统的需求分析:对该系统进行需求分析,分析出用户的需求,完善系统的功能,力求使系统拥有丰富的功能。 第三章, 系统的详细设计:对系统进行细致的分析,将系统分模块,将每个模块的逻辑结构整理清楚。第四章, 系统测试:测试是保证软件质量的必须的步骤。这章描述软件测试的方法与结果分析。第五章, 结论:软件完整开发所取得的成果及得到的经验总结。第六章, 结束语:开发过程结束感想,感言。第二章 理论分析2.1 JavaEE平台JavaEE是一套方案总称,它包含了J2EE,J2SE,JSME三个平台,JavaEE的核心是EJB,将一些EJB组件组合起来,可以方便、快捷地建构起分布式应用程序。EJB规范的优点是简化分布式应用程序开发复杂性,你不必太担心事务处理、资源管理、多线程等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。而且EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或JDBC等服务,从而增强了分布式应用程序的可扩展性和性能,正是由于EJB,使得JavaEE有着可靠性、可管理性和可移植性的优点。JavaEE已经成为一个具有优秀兼容性的,广泛应用的开发平台,相信在未来,它可以走的更远。2.2 MVC模式MVC是模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。其中,模型层是用于实现系统的业务逻辑部分,主要的实现方法为通过EJB和JavaBean实现;视图层是指的与用户发生交互的部分,可以通过JSP来实现;控制层用于沟通模型层与视图层,它用于解释用户的输入并将它们映射为模型层可执行的操作,还可以分派用户的请求并选择恰当的视图以用于显示。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标记)都是跨平台可重用的。JSP简单易用,完全的面向对象,具有平台无关性且安全可靠,他的这些特点使得JSP技术在全球范围内得到了广泛的应用。第三章 系统的需求分析现代社会是一个信息化的社会,现代人分分钟离不开信息,网络的跨地域性和包容性为信息时代提供了不可代替的新闻信息。在线的新闻阅读已经渐渐成为人们摄取信息的主要途径,故在线的新闻发布成为了各大新闻网站必不可少的工作利器。3.1 系统情况的基本描述在线的新闻发布系统主要目标是实现新闻管理的便捷,及时性,力求用软件来代替大量的人工。该系统分为两个部分:前台与后台。前台是新闻浏览平台,主要实现新闻的浏览,新闻评价,后台是新闻管理平台,主要实现新闻的编辑,添加,删除,用户留言管理等管理功能。3.2 系统功能描述3.2.1 系统的总体功能用 户管理员注册新闻管理用户管理账号管理新闻搜索在线新闻发布系统在线新闻发布系统的描述,如图3.2.1:图3.2.1 系统功能分布图系统角色:1.游客:浏览新闻,查看新闻评论,注册用户,新闻搜索;2.用户:浏览新闻,对新闻进行评论,登录,密码修改,新闻搜索等;3.管理员:新闻编辑,添加,删除,用户留言的管理,新闻类型的管理,密码修改等。系统的类图,如下(图3.2.2):图3.2.2 系统的类图3.2.2 系统用例该系统主要由两个角色:管理员,用户。下面为管理员的用例图(如图3.2.3):图3.2.3 管理员用例图用户的用例图(如图3.2.4):图3.2.4 用户用例图3.2.3 数据库的设计数据库使用的是MySQL,MySQL是一个关系型数据库管理系统,关联数据库将数据保存于不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度而且灵活性也得到了提高。MySQL是一种开源的数据库,它具有体积小,速度快,成本低的优点,由MySQL+Apache+Jsp开发环境被广泛的应用于小型的Internet的开发项目。现如今SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言。使用SQL语言将使存取或更新信息变得十分容易,你可以直接使用SQL从网站上查询相关的信息。MySQL的快速性和灵活性足以满足一个网站的信息管理工作。其数据库与用户端之间的接口程序可以使用CGI进行数据通信。同时,MySQL还是一个多用户、多线程的数据库,是客户机/服务器结构的应用,由一个服务器守护程序和很多不同的客户程序和库组成。MySQL具有以下的特点:可以同时处理几乎不限数量的用户;处理多达50,000,000以上的记录;命令执行速度快;简单有效的用户授权系统。MySQL和其他的数据库比起来虽然规模小,功能有限但由于其开源,速度快等特点,还是受到了市场的欢迎。在线新闻发布系统数据库设计如下:表3.2.5 用户表用户表(db_users)名称类型大小要求Uid(用户ID)Int2自增长;主键(key)Uname(用户名)varchar20Not-nullUpass(用户密码)Varchar20Not-nullUemail(用户邮箱)Varchar50Usex(用户性别)Char2表3.2.6 管理员表管理员表(db_managers)名称类型大小要求Mid(管理员ID)Int2自增长;keyMname(管理员名)Varchar10Not-nullMpass(管理员密码)Varchar20Not-null表3.2.7 新闻类型表新闻类型表(db_newstype)名称类型大小要求Tid(类型ID)Int4KeyTname(新闻类型名称)Varchar10Not-null表3.2.8 新闻表新闻表(db_news)名称类型大小要求Nid(新闻编号)Int2N_tid(新闻所属类型)Int2Primary_keyNtitle(新闻标题)Varchar50Not-nullNcontent(新闻内容)Varchar500Not-nullNtime(新闻发布时间)Datestamp表3.2.9 留言表留言表(db_message)名 称类型大小要求sId(留言编号)int4Uname (用户ID)varchar20Primary-keyNid(留言新闻的ID)int4Primary-keyScontent(留言的内容)varchar50Not-nullSdate(留言的时间)datestamp第四章 系统的详细设计4.1 系统功能的模块划分在线新闻发布系统在总体上分为了前台,后台两部分:前台:新闻列表,新闻搜索,新闻评论,登录,注册,密码修改五个模块;后台:管理员登录,管理员的添加,新闻管理,新闻类型管理,用户评论管理,密码修改四个模块;4.1.1 登录登录包括了管理员的登陆与用户的登录,首先点击登录进入JSP登录界面,输入用户名,密码,JSP将用户名,密码提交至action处理,经过系统执行select的SQL语句进行核实比对后返回相应的响应,若用户名,密码正确,则进入前台或后台首页,并显示“用户名,欢迎您!”,如果用户名不存在或密码不正确,则显示失败或转入注册界面,下面是登录模块的E-R流程图(图4.1.1):图4.1.1 登录模块的E-R图4.1.2 注册本系统中以游客身份登录不可以留言,所以用户需要注册一个用户,游客点击注册按钮,进入注册页面,输入用户名,密码,邮箱等即可完成注册。在JSP提交表单时,会先进行一个非空验证,用户名,密码不能为空,email的格式验证。将表单信息交到action,后台的程序会进行用户名唯一性的验证,如果是唯一的,系统执行insert的SQL语句将信息录入数据库中保存,并返回成功,客户端可以看到注册成功的页面,如果验证失败,会返回失败信息,通知用户重新输入相应的信息。下图是注册的E-R图(图4.1.2):图4.1.2 注册模块的E-R图4.1.3 新闻管理模块在线新闻发布系统的核心模块就是新闻管理模块,该模块要实现新闻的添加,编辑,删除等相关操作,新闻管理的操作如下:1.添加新闻信息操作:l点击添加新闻按钮,输入需要添加新闻的内容。包括新闻的标题、内容、分类等。验证管理员输入的新闻的标题、内容、分类等是否符合新闻数据库表中字段定义。若不符合则提示输入有误。若成功,则提示用户信息添加成功并更新用户数据库表的信息。(图4.1.3)图4.1.3 添加新闻的E-R图截图(图4.1.4):图4.1.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);System.out.println(deal_addnews); 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.1.5):图4.1.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=下一页 尾页 第五章 系统测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。测试阶段的根本目标的是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。事实上,测试是所有工程学科的基本组成单元,是软件开发的重要部分,自有程序设计的那天起测试就一直伴随着。5.1 软件测试的重要性及目的测试是所有工程学科的基本组成单元,是软件开发的重要部分。“在发布新产品之前做好测试,提高软件产品质量,减少漏洞,是预防遭受木马攻击的根本途径。”北京康赛普特信息技术有限公司高级测试总监王亚智指出,零缺陷的软件是不存在的。据统计,通过必要测试,软件缺陷数可至少降低75%,而软件的投资回报率能达到350。这样,软件测试的重要性不言而喻。而且,近年来,各软件公司都认为软件生命周期每一阶段中都应有相应的测试(测试模型如图5.1.1),以便检验本阶段的成果能否接近预期的目标,可以尽早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试面临巨大的困难。测试的目的并不仅仅是为了找出错误。通过分析错误产生的原因和错误的分布的特征,不仅可以帮助项目管理者发现当前所采用的软件过程的缺陷,还可以帮助我们改进出有针对性地检测方法,改善测试的效果。图5.1.1 测试的模型5.2 软件测试的原则软件测试时软件开发过程中必不可少的一项,测试的过程也应该遵守相应的原则。如下:1. 测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误就是系统不能满足用户的基本需求;2. 注意测试的群集现象;3. 错误的结果要进行确认,比如,甲测试出来的错误,必须要由乙来确认。当错误严重时可以召开评审会进行讨论,分析,对测试的结果进行严格的确认,确定是否真的存在这样的问题并判断严重程度;4. 一定要制定严格的测试计划。测试的时间要安排的尽量宽松;5. 测试用例的设计要考虑到各种可能的情况;6. 要妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。5.3 白盒测试由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比且我们经常相信某逻辑路径不可能被执行, 但事实上,它能在正常的情况下执行。由于代码中的笔误的随机性和不可预测性,因此我们要进行白盒测试。白盒测试是把测试对象看作一个打开的盒子,依据程序内部逻辑结构之间的相关信息,设计与选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态与预期的状态是否一致。白盒测试我采用的是:条件组合覆盖和路径覆盖。条件组合覆盖中,测试用例的设计需要满足:保证一个模块中的所有独立路径至少被执行一次;对所有逻辑值均需测试 true 和false;在上下边界及可操作范围内运行所有循环;检查内部数据结构以确保其有效性。5.3.1 登录的白盒测试采用边界值法和等价类划分法,设计的测试用例如下:(1)合理的输入条件输入的数据:管理员正确的的账号,密码;系统用户正确的用户名,密码预期的结果:成功登录,进入前台后台的主界面。(2)不合理的输入条件输入的数据:管理员账号不存在或系统用户不存在预期的结果:系统提示用户名,密码错误,请重新登录输入的数据:管理员账号存在,但密码错误或系统用户存在,密码错误预期的结果:系统提示用户名,密码错误,请重新登录输入的数据:管理员的账号,密码为空;用户的用户名,密码为空预期的结果:系统提示账号密码不能为空,请重新输入5.3.2 新闻添加的白盒测试设计的测试用例如下(如图表5.3.2):表5.3.2 新闻添加测试用例测试内容测试新闻添加测试方法白盒测试测试用例合理输入不合理输入输入数据正确数据填写不完整已存在的新闻预期结果添加成功添加失败添加失败实际结果添加成功注册失败添加失败测试评价该系统成功的通过该

温馨提示

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

评论

0/150

提交评论