基于Java EE的新闻网站设计与实现_第1页
基于Java EE的新闻网站设计与实现_第2页
基于Java EE的新闻网站设计与实现_第3页
基于Java EE的新闻网站设计与实现_第4页
基于Java EE的新闻网站设计与实现_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

绪论1.1研究背景及意义21世纪是信息技术时代,网络的时代,进入信息社会快速发展的新时代,数字化革命带来了全球范围内各个领域的变革。新闻发布管理系统也称为网站信息管理系统,它是根据信息的种类等进行集中的管理,并且按照一定的标准将信息发布到网站中的一种计算机应用程序[1]。为了提高新闻报业的发展现状,而为信息化时代的到来也促进了新闻发展的脚步,信息化进程己经成为一种必然的趋势[2]。整个世界越来越紧密相连,这也意味着企业竞争环境正朝着全球化方向发展。经济全球化已成为大势所趋,并将技术和经济环境融合在一起形成一个庞大的网络概念。企业对于信息的掌握程度、充分利用能力以及对信息敏感性和准确性等因素已成为衡量市场竞争力的重要指标。因此,建立新闻发布系统具有巨大意义。随着网络连接越来越普遍,人们可以和远在海岸的朋友聊天,了解正在发生的事情。作为网络媒体其中,作为主要系统的新闻发布系统其重要性越来越大。另一方面,今天我们必须认识到这一点和使用者沟通,帮助他们发表意见,而这是其他媒体(如电视、电台等)目前无法做到的。因此我们称其为消息管理或者信息编辑管理系统,它能够按照内容类别将网站上众多消息进行分类、标准化、整合并规范处理后放置在网站上供人们查阅。最重要的是信息技术和科学管理相结合,提高生产效率。所以网络化的新闻发布和管理系统建设已经成为提高一个网站信息处理能力的主要方面[3]。1.2国内外研究现状1.2.1国外研究现状随着全球经济一体化的进展和网络技术的普及,新闻信息发布正逐渐向数字技术转型。因此,设计和实现高效的新闻信息发布系统成为了研究领域中备受关注的焦点。该系统主要旨在构建一个管理平台,使前台用户与后台管理紧密结合,并通过有效的管理手段为前台用户提供有价值的新闻信息,以便公众能够及时浏览并获得有效帮助。鉴于这一背景,本文所进行的研究工作具有极其重要且现实意义非凡。1.2.2国内研究现状理论上分析中国的大学内部信息的传播和对外宣传已经成为校园新闻网的重要任务。建议高校充分利用这个平台,发挥其引导作用,提升思想宣传工作水平,唱新纪元的主题歌。以徐州医学院为例,罗鹏耀、朱红校园新闻发布网站的需求分析。认为,应该出一个新的新闻网站设计的方案,特别是和CSS样式表,使新闻发布网站更加+人性化、综合性、智能化。大多数传统媒体都幵始组建自己网络新闻媒体,资本市场也逐渐偏向互联网及相关计算机技术的网站开发[4]。1.3研究方法与内容1.3.1研究内容新闻发布系统是一个基于JavaEE的新闻网站设计与实施,旨在开发一个多元化、开放式的新闻发布系统。该系统采用MVC三层架构,并基于浏览器/服务器结构,利用JavaEE语言实现后台管理和新闻类型管理功能。前端使用JSP技术实现页面动态化,从而形成了一个完整的新闻发布系统。1.3.2研究方法(1)系统需求分析:对新闻网站的功能需求进行分析,包括登录、评论互动、新闻展示、新闻发布等功能,并确定系统的性能要求和用户体验要求。

(2)数据库设计:对于新闻发布系统,需要设计一个包含新闻信息表、评论信息表和用户信息表等的数据库结构,并确保它们之间存在适当的关联。同时,选择适合的数据库管理系统来实现这一目标。(如MySQL、Oracle等)。

(3)用户界面设计:设计用户友好的界面,包括网页布局、导航菜单、新闻展示样式等,以提高用户体验。使用HTML、CSS等前端技术实现该方案对标签元素的内联属性进行过滤,使过滤器对恶意有效载荷具有良好的检测率,同时对良性有效载荷具有良好的通过率。为web开发人员提供了有效的参考和建议,以帮助选择开源web项目,并提出了提高过滤器性能的可行解决方案[5]。(4)功能模块设计和实现:根据系统的需求,将新闻发布系统划分多个功能模块,如用户管理模块、评论模块、新闻展示模块等。使用JSP的技术嵌入了Java代码,实现各个功能模块。

(5)用户交互设计与实现:设计支持评论、互动等功能,包括登录、发表评论等。通过JSP和JavaScript等技术实现用户交互功能。1.4论文组织结构本文共分为六章,各个章主要内容如下:第一章:引言绪论。第二章:描述新闻发布系统的所用技术。第三章:分析系统的需求,满足用户的需求。第四章:系统设计包括架构设计、数据库设计等。第五章:系统编码与实现。第六章:系统测试。2系统关键技术介绍2.1JavaEE平台JavaEE是一套方案总称,它包含J2SE,JSME,J2EE三个平台,Java的核心是EJB。EJB组件的组合可以迅速创建分散的应用程序。EJB的复杂性被简化了EJB是能使用其他服务,应用程序的灵活性和性能被EJB调高了。EJB提供了可靠性、移植性和持续性。基于Java的信息页面对通用应用程序的开发,提出了非常高的性能,性能要求。应用层、访问层以及数据层构成了新闻网站,并根据其功能分为前台应用和后台管理[6]。2.2MVC模式MVC模式是种框架结构,体现了分层思想,分别为:模型(Model)、视图(View)和控制器(Controller)[7],模型层面是系统经济逻辑的一部分,主要是通过例如。这应该通过回答与“JSP”函数相关的用户查询来实现。控件可以在模型和视图之间链接,用户可以分配任务并选择适当的视图。mnetter将视图和控制层与模型层进行了比较。目的实现了Web系统职能的分工。提高了程序的可重复使用性,并方便开发人员构建应用程序。MVC设计模式的出现,终结了以前各层合并未区分的现象,科学合理的分层也提高了每一模块的高效性与重用性[5]。2.3JSP技术Javaserverpage是一种动态Web技术,它是通过在传统的JSP文件中引入Java的程序(Scriptlet)和JSP的标签来实现的。JSP是个servet设计,它允许从Java扩展到html语法,从运行在服务器上的html语法,到将html文件传输到已经存在浏览器的服务器的程序。JSP是简单和可访问的。2.4Spring技术Spring是个开源框架。Spring使用基本JavaBean来完成以前的只可能由EJB完成的事情Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架[8]。2.5数据库设计当mysql被用作数据库时,收集到的url将被存储,并添加一个字段来指定、输入或搜索地址。引入正则表达式进行匹配,防止同一网站重复扫描,浪费系统资源[9]。新闻管理系统的成败至关重要。数据库查询:(1)数据可以集中查询。便于程序的开发、维护及后期的扩展,提高软件的实用性和通用性[10]。3系统分析3.1需求概况在线的新闻发布系统主要目标是实现新闻管理的便捷,及时性,力求用软件来代替大量的人工。互联网新闻传播速度快、影响力大、交互性强等优点,不失为校园新闻传播的一条良好渠道[11]该系统分为两个部分:前台与后台。前台是新闻浏览、评论。后台是新闻管理平台,用添加和删除新闻,并管理用户评论等。一个成功的新闻管理系统的构建不仅需要考虑到如何高效快捷的实现系统功能,还要本着可扩展的原则,在一定时期内适应技术发展与功能扩充的需求,同时要给用户提供方便、实用的信息服务,使网站的商务功能最大化[12]采用WEB技术,创建简捷高效的新闻管理系统[13]。特定用户可以通过web览器,以人机交互式的客户端程序实现对新闻的发布、管理、实时的进行行为统计系统实现操作[14]。3.2功能需求分析系统分为两部分,控制器允许用户阅读消息和评论。通过管理员管理界面,用户可以研究、监视和执行他们在系统中报告的最新消息,而这样做是为了在系统上发布、修改和删除新消息。管理员并对用户进行管理。能看到用户评论,对有些评论进行删除。3.3可行性分析(1)政策可行性

我国政府高度重视新闻媒体的发展,根据十五计划纲要的指示,积极推动信息化进程,并通过信息化促进工业发展。在这一过程中,新闻发布网站将扮演着至关重要的角色之一。

(2)经济可行性随着信息技术的快速进步,信息基础设施的价格不断下降,这为网站建设提供了经济上的便利。系统成本主要涉及到系统开发和后期维护所需的大量人力和物力资源,尤其是后期维护所消耗的成本。然而相对于运营后带来的巨大经济效益而言,这些成本可以被视作微不足道。

(3)技术可行性然而,设备需要带有浏览器的计算机。语言在软件开发中已经非常先进,技术可行性完全足够。(4)操作可行性

管理员和用户可以在规划功能模块时交换想法,庞大的历史数据为学校每一个历程有了详细的记录,但如果是用纸质的方式对数据查找、更新和维护操作过于复杂,人力物力消耗太大[15]以实现更短的周期、更高效、更快的更新、更简单的数据更改和更简单的扩展。4系统设计4.1系统架构设计本新闻发布系统的构建采用了B/S应用架构,前端页面使用了Html、JS和CSS技术,后端处理则采用Jsp框架,数据库方面选择了MySQL。4.2系统详细设计在线新闻发布系统在总体上分为了前台和后台两部分:前台:包括新闻搜索、新闻评论和新闻列表三个模块;后台:管理员登录、新闻添加、评论管理。部分功能具体描述如下图4.1:图4.1部分具体功能描述如下:用户浏览新闻新闻、发表评论用户浏览到想要阅读的新闻,点击进去,阅读完后可发表自己的想法管理员添加标题、删除内容管理员登陆后台时,可以通过点击左侧导航栏来进行新闻的添加、删除、修改以及链接的调整等操作。刷新服务器管理员登陆后台,点击左边导航栏刷新服务器缓存可刷新服务器。4.3数据库设计数据库系统是关键组成部分,本系统的数据表包括用户表、新闻表、新闻分类表和链接表等。对新闻发布系统运用了E-R图进行建模,如图4.2。图

4.2

E-R建模数据库中,新闻类别表的设计如表4.1所示表4.1

新闻类别表t_newstype设计数据库中,用户表的设计如表4.2所示表4.2用户表t_user设计数据库中,新闻表的设计如表4.3所示表4.3新闻表t_news设计数据库中,链接表的设计如表4.4所示表4.4链接表t_link设计数据库中,评论表的设计如表4.5所示表4.5评论表t_comment设计5系统编码与实现5.1前台模块实现用户进入新闻系统后,可以选择浏览新闻、发表评论运行截图,如图5.1所示:图5.1用户进入新闻系统后,可以选择浏览新闻并在阅读完毕后进行评论发布。以下是核心代码:publicList<Comment>commentList(Connectioncon,Comments_comment,PageBeanpageBean,StringbCommentDate,StringaCommentDate)throwsException{ List<Comment>commentList=newArrayList<Comment>(); StringBuffersb=newStringBuffer("select*fromt_commentt1,t_newst2wheret1.newsId=t2.newsId"); if(s_comment.getNewsId()!=-1){ sb.append("andt1.newsId="+s_comment.getNewsId());} if(StringUtil.isNotEmpty(bCommentDate)){ sb.append("andTO_DAYS(mentDate)>=TO_DAYS('"+bCommentDate+"')");} if(StringUtil.isNotEmpty(aCommentDate)){ sb.append("andTO_DAYS(mentDate)<=TO_DAYS('"+aCommentDate+"')"); } sb.append("mentDatedesc"); if(pageBean!=null){ sb.append("limit"+pageBean.getStart()+","+pageBean.getPageSize()); } PreparedStatementpstmt=con.prepareStatement(sb.toString()); ResultSetrs=pstmt.executeQuery(); while(rs.next()){ Commentcomment=newComment(); comment.setCommentId(rs.getInt("commentId")); comment.setNewsId(rs.getInt("newsId")); comment.setNewsTitle(rs.getString("title")); comment.setContent(rs.getString("content")); comment.setUserIP(rs.getString("userIP")); comment.setCommentDate(DateUtil.formatString(rs.getString("commentDate"),"yyyy-MM-ddHH:mm:ss")); commentList.add(comment); } returncommentList; } publicintcommentCount(Connectioncon,Comments_comment,StringbCommentDate,StringaCommentDate)throwsException{ StringBuffersb=newStringBuffer("selectcount(*)astotalfromt_comment"); if(s_comment.getNewsId()!=-1){ sb.append("andnewsId="+s_comment.getNewsId()); } if(StringUtil.isNotEmpty(bCommentDate)){ sb.append("andTO_DAYS(commentDate)>=TO_DAYS('"+bCommentDate+"')"); } if(StringUtil.isNotEmpty(aCommentDate)){ sb.append("andTO_DAYS(commentDate)<=TO_DAYS('"+aCommentDate+"')"); } PreparedStatementpstmt=con.prepareStatement(sb.toString().replaceFirst("and","where")); ResultSetrs=pstmt.executeQuery(); if(rs.next()){ returnrs.getInt("total"); }else{ return0; } } publicintcommentAdd(Connectioncon,Commentcomment)throwsException{ Stringsql="insertintot_commentvalues(null,?,?,?,now())"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setInt(1,comment.getNewsId()); pstmt.setString(2,comment.getContent()); pstmt.setString(3,comment.getUserIP()); returnpstmt.executeUpdate(); } publicintcommentDelete(Connectioncon,StringcommentIds)throwsException{ Stringsql="deletefromt_commentwherecommentIdin("+commentIds+")"; PreparedStatementpstmt=con.prepareStatement(sql); returnpstmt.executeUpdate(); }}5.2后台模块实现管理员点击最后链接,进入登陆界面,核心代码如下:publicclassUserServletextendsHttpServlet{ /** * */ privatestaticfinallongserialVersionUID=1L; DbUtildbUtil=newDbUtil(); UserDaouserDao=newUserDao(); protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ this.doPost(request,response); } @Override protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); Stringaction=request.getParameter("action"); if("login".equals(action)){ login(request,response); }elseif("logout".equals(action)){ logout(request,response); } } privatevoidlogin(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ StringuserName=request.getParameter("userName"); Stringpassword=request.getParameter("password"); HttpSessionsession=request.getSession(); Connectioncon=null; try{ con=dbUtil.getCon(); Useruser=newUser(userName,password); UsercurrentUser=userDao.login(con,user); if(currentUser==null){ request.setAttribute("error","用户名或者密码错误!"); request.setAttribute("password",password); request.setAttribute("userName",userName); request.getRequestDispatcher("/background/login.jsp").forward(request,response); }else{ session.setAttribute("currentUser",currentUser); request.setAttribute("mainPage","/background/default.jsp"); request.getRequestDispatcher("/background/mainTemp.jsp").forward(request,response); } }catch(Exceptione){ e.printStackTrace(); }finally{ try{ dbUtil.closeCon(con); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } privatevoidlogout(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.getSession().invalidate(); System.out.println(request.getContextPath()+"/background/login.jsp"); response.sendRedirect(request.getContextPath()+"/background/login.jsp"; }}管理员登录运行截图,如图5.2,5.3所示:图5.2图5.3管理员后台对链接,新闻等进行删除,核心代码如下: privatevoidcommentDelete(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ StringcommentIds=request.getParameter("commentIds"); Connectioncon=null; try{ con=dbUtil.getCon(); JSONObjectresult=newJSONObject(); intdelNums=commentDmentDelete(con,commentIds); if(delNums>0){ result.put("success",true); result.put("delNums",delNums); }else{ result.put("errorMsg","删除失败"); } ResponseUtil.write(result,response); }catch(Exceptione){ e.printStackTrace(); }finally{ try{ dbUtil.closeCon(con); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }}管理员删除运行截图,如5.4所示:图5.4管理员添加、新闻类别等相关核心代码如下:privatevoidlinkPreSave(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ StringlinkId=request.getParameter("linkId"); Connectioncon=null; try{ con=dbUtil.getCon(); if(StringUtil.isNotEmpty(linkId)){ Linklink=linkDao.getLinkById(con,linkId); request.setAttribute("link",link); } if(StringUtil.isNotEmpty(linkId)){ request.setAttribute("navCode",NavUtil.genNewsManageNavigation("友情链接管理","友情链接修改")); }else{ request.setAttribute("navCode",NavUtil.genNewsManageNavigation("友情链接管理","友情链接添加")); } request.setAttribute("mainPage","/background/link/linkSave.jsp"); request.getRequestDispatcher("/background/mainTemp.jsp").forward(request,response); }catch(Exceptione){ e.printStackTrace(); }finally{ try{ dbUtil.closeCon(con); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } privatevoidlinkSave(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Connectioncon=null; StringlinkId=request.getParameter("linkId"); StringlinkName=request.getParameter("linkName"); StringlinkUrl=request.getParameter("linkUrl"); StringlinkEmail=request.getParameter("linkEmail"); StringorderNum=request.getParameter("orderNum"); Linklink=newLink(linkName,linkUrl,linkEmail,Integer.parseInt(orderNum)); if(StringUtil.isNotEmpty(linkId)){ link.setLinkId(Integer.parseInt(linkId)); } try{ con=dbUtil.getCon(); if(StringUtil.isNotEmpty(linkId)){ linkDao.linkUpdate(con,link); }else{ linkDao.linkAdd(con,link); } request.getRequestDispatcher("/link?action=backList").forward(request,response); }catch(Exceptione){ e.printStackTrace(); }finally{ try{ dbUtil.closeCon(con); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }}管理员添加新闻类别运行截图,如图5.5所示:图5.56系统测试系统测试的目标是全面检查站点的硬件设备、软件系统和操作人员,以确保满足系统要求和预期性能,并发现并修复潜在问题,提高可靠性、稳定性和安全性。6.1测试方法简介1.等价测试是将输入域分割成不同的子集,使每个子集的输入数据在显示程序错误时具有相同的效果,并能够合理地假设。例如:系统的初始资金只可输入数字有效等价:555,无效等价:…2.性能测试利用自动化的测试工具模拟负载条件,对系统性能指标进行评估。例如:系统能不能承受大量的并发用户同时访问?例如:10000人一起使用新闻发布系统,系统的运行负载情况。3.划界算法被认为是对当时有争议的划界的补充,在某些情况下,它被用作在我国境内进行测试的基础。例如:输入每年天数,366天或者364天。4.接口测试的目标是验证系统与外部系统之间的连接,以及不同在进行这些测试时,我们的主要兴趣是验证所使用参数的准确性、接口功能是否实现正确以及输出结果是否准确。例如:请求方式是选择post,输入URL,body中输入接口文档中需要传的参数。5.自动化是将人为测试转变为机器的过程。在测试对象被设计和批准后,将逐渐测试对象,以比较实际结果。现在提高考试结果需要很多时间和努力。6.因果图法是一种基于事物发展变化之间的因果关系进行分析,并利用图解法来设计测试用例的方法。它适用于检查程序输入条件各种组合情况下的可能性。举个例子,我们有一个自动售货机软件,价格是1.5美元。如果你把一美元投入一种货币,然后按下“红茶”、“牛奶”或“可乐”按钮,饮料就会送到。当一枚硬币价值2美分时,它就会变成50美分。7.场景法是一种验证软件系统功能正确性的方法,它通过描述业务流程和实现代码逻辑,并设计用例来遍历不同场景。举个例子,用户登录网站后可以选择书籍并下单购买,然后将图书放入购物车中。用户需要登录自己注册的帐号进行结账,登录成功后,进行结帐并生成订单,结束。6.2单元测试模块测试通常是一个被广泛采用的测试策略,其主要目的是将系统的各个部分进行独立检验,以确保每个单元都能正常运行。本次测试测试了新闻发布、登录测试、banner点击、友情链接点击测试、新闻列表、新闻图像测试,需要查看一下该函数是否能够正确执行。这是部分的测试用例表:新闻列表、内容等添加模块包含886了个测试用例。部分测试结果,如表6.1所示:图6.1发布新闻用例表测试项目执行步骤预期输出测试结果用例个数发布新闻输入名称,初始值,字符宽度,最多字符数,类型,最后点击保存添加菜单/列表属性成功添加成功546登录输入登录名和密码,点击登录登录成功,进入成功登录成功8发布banner点击任务ID进行测试进入页面进入页面成功19友情链接点击链接,输入名称,地址,邮件等最后点击保存友情链接添加连接成功添加连接成功14新闻列表把排列顺

温馨提示

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

评论

0/150

提交评论