基于SSH框架在线论坛设计与实现论文.docx_第1页
基于SSH框架在线论坛设计与实现论文.docx_第2页
基于SSH框架在线论坛设计与实现论文.docx_第3页
基于SSH框架在线论坛设计与实现论文.docx_第4页
基于SSH框架在线论坛设计与实现论文.docx_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计毕业题目:基于SSH框架在线论坛设计与实现摘 要当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。论坛以其独特的优势在信息化的过程中占有重要的一席。论坛的存在使得地球村的概念离我们越来越近,使得人与人之间的沟通、交流变得格外的容易。特别是在IT领域,只有有了很好的交流,技术才会得到进步。因此,掌握如何设计并开发一个论坛也显得格外的重要而且意义深远。论坛采用B/S体系结构,其功能是让用户自由地发表自己的帖子和回复其他用户的帖子。论坛包括用户模块、帖子模块。论坛在Struts2HibernateSpring框架的基础上,用JSP语言进行开发,使用的数据库是MySQL,开发工具为MyEclipse2013。本论坛界面简洁,具有可扩展性和可维护性。关键词:BBS,S.S.H(Struts2,Hibernate,Spring),JAVA,MySQL,JSP目 录第一章 绪论11.1研究背景11.2研究目的21.3研究方法21.4 本章小结3第二章 系统分析42.1技术分析42.1.1开发语言综述42.1.2 S.S.H框架的优点42.1.3 系统层次设计62.2需求分析72.2.1功能需求72.2.2性能需求82.2.3系统开发运行环境82.3本章小结9第三章 系统设计103.1 概要设计103.1.1功能模块设计103.1.2系统界面设计113.2 数据库设计133.2.1概念模型设计(E-R图)143.2.2数据库表及关系建立143.2.3详细数据库结构设计153.3 本章小节16第四章 系统实现174.1 系统框架实现174.1.1 Struts、spring、Hibernate在各层的作用184.1.2底层数据库的建立184.1.3 DAO层的建立(Hibernate)184.1.4业务逻辑层的建立204.1.5表示层的建立204.2 系统功能模块实现204.2.1用户模块实现204.2.2帖子模块实现234.2.3用户个人中心模块实现254.2.4用户头像上传,与资料修改274.3 本章小结28第五章 系统测试295.1 测试概述295.1.1软件测试的目的295.1.2软件测试的任务295.1.3测试环境295.2 单元测试305.3 集成测试305.4 功能测试305.5 本章小结31总 结32参 考 文 献33致 谢34第1章 绪论本章根据BBS系统的特征,介绍该系统的研究背景以及研究目的,以及系统实现方法。1.1研究背景1978年在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系统。之后随着苹果机的问世,开发出基于苹果机的Bulletin Board System和大众信息系统Peoples Message System两种BBS系统。1981年IBM个人计算机诞生时,并没有自己的BBS系统。直到1982年,Buss Lane 才用Basic语言为IBM个人计算机编写了一个原型程序。其后经过几番增修,终于在1983年通过Capital PC User Group的Communication Special Interest Group会员的努力,改写出了个人计算机系统的BBS。经Thomas Mach整理后,终于完成了个人计算机的第1版BBS系统RBBS-PC。这套BBS系统的最大特色是其源程序全部公开,有利于日后的修改和维护,因此后来在开发其他的BBS系统时都以此为框架,所以RBBS-PC赢得了BBS鼻祖的美称。大约是从1991年开始,国内开始了第一个BBS论坛。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,BBS论坛才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的BBS论坛,大多数还是大型综合性BBS论坛。随着计算机的普及,特别是宽带的普及,BBS的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS将会慢慢增加需求。尽管BBS论坛的数量在不断增长,但BBS的发展过程,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。而国内自己开发的BBS基本上都是处于最原始的JSP MODEL1模式,这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大地限制了BBS站点的扩展。于是在这种情况下,本文提出了基于MVC模式的SSH框架的BBS论坛。本论坛的优点在于它具有强大的可扩展性和可维护性,适合网民创建自己的中小型BBS论坛。1.2研究目的进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端服务器的C/S结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器服务器的B/S结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,既适用于局域网,又适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨问题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间, 影响和改变着我们的生活。为了方便信息交流,在结合java和ssh技术之下开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。1.3研究方法论坛在Struts2+Spring+Hibernate 扩展Structs2框架的基础上,用今天主流的网站开发技术jsp语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问网站的主页。在这论坛可以自由地发表自己的观点和对论坛主题发表意见,我们还可以对网友的问题进行及时的解决,获取对自己有用的知识。本网站按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。1.4 本章小结本章详细的介绍了课题背景,选题的目的和意义,开发工具以及软硬件需求,对所采用的开发工具做了深层次介绍。如:说明了为什么要采用B/S架构进行开发等。第2章 系统分析本章根据BBS系统的特点,对该系统进行一系列分析,以及对Struts框架、Spring框架、hibernate框架进行详细的描述,对系统开发环境进行介绍。2.1技术分析2.1.1开发语言综述本系统是基于面向对象思想的JAVA语言中J2EE平台进行编写,J2EE平台具有以下优点。(1)简化结构:J2EE平台支持简化的、基于组件开发模型,遵循J2EE标准的所有服务器都支持该模型。J2EE标准还允许客户订购与J2EE兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用。(2)提高开发效率:由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。例如:图形设计师创建JSP模板,商业逻辑由该领域的专家完成,JSP页面由Java工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发。(3)易于维护:基于组件的设计简化了应用程序的维护。由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。(4)可伸缩性:基于J2EE平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端UNIX或其他的大型机系统上。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。2.1.2 S.S.H框架的优点S.S.H框架是J2EE应用中Struts+Spring+Hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。它是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。它有很多优秀的设计理念及模式应用。比如,Struts属于MVC框架,关键是要了解MVC的概念及大致原理;Hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解;Spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等。S.S.H由以下3个框架构成:(1)Struts框架Struts是Apache软件基金会(ASF)赞助的一个开源项目。它通过采用Servlet/JSP技术,实现了基于Java EE Web应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。图2-1 Struts框架工作流程(2)Spring框架Spring是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。Spring框架由以下7个部分组成。图2-2 Spring框架构成(3)Hibernate框架Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲地使用面向对象编程思想来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。图2-3 Hibernate框架2.1.3 系统层次设计根据S.S.H框架的特点,决定使用四层结构,这样做的优点是可以分层开发,访问数据库与业务逻辑实现能够分开,提高代码的复用。在使用SSH框架进行web开发时,进行后端设计时必然会涉及到类的划分,也就会涉及到层次的划分。所谓层次,也就是一种降低耦合性的措施,人为的通过代码的功能性的不同和调用关系将整个项目的类进行分层。而在使用这些类时,调用关系一般都是顺序的,而且是不可逆的,也就是从上到下的调用关系并不能改变,而且不能越层级而调用,这就降低了代码间的耦合性,因为调用关系相对比较单一,耦合性就较低。一般的分成有这样几层:Model层、Action层、Service层和DAO层。图2-4 BBS系统的分层结构2.2需求分析2.2.1功能需求对于访问论坛的用户,可分为注册会员和游客,这两种用户有着不同的权限,比如游客只能进入首页,查看帖子列表,而注册会员,可以发帖,回帖,查看帖子详情,修改或删除自己的帖子,并且可以对自己的注册资料进行修改等等。以下为用户角色划分:(1)普通用户(游客):普通用户以游客身份登录本系统,只能进入首页,查看帖子列表,其他操作需要注册后才能进行。(2)注册用户:具备普通用户所有的能力。并且注册用户可以发帖,回帖,查看帖子详情,修改或删除自己的帖子,修改个人信息。本系统是一套网上交流的BBS软件,根据用户的需要和实际的管理条件,应由用户功能模块,帖子功能模块等几个模块所构成,用户可以对一些数据进行查找和修改,并且注册的用户可以对帖子进行特定的操作。鉴于本系统的性质,系统应该实现以下功能。(1)用户功能模块1)用户的登录:用户输入登录信息,如用户名、密码,以注册会员的身份进入论坛;2)用户的注册:用户在网上在线填写一些会员的注册信息。注册后即可成为论坛的注册会员;3)用户资料的修改:注册会员登录成功后,可以修改自己的注册信息,如性别或者头像等。4)用户个人中心,用户注册后,登入进入个人中心后,可以查看对自己的贴子进行管理,包括删除帖子,修改帖子等。5)用户进入首页点击自己的用户名,进入个人中心,点击修改资料进行资料修改。(2)帖子功能模块1)帖子的发表:登陆成功的注册用户可以选择自己感兴趣的版块,发表自己的帖子;2)帖子的回复:登陆成功的注册用户可以查看感兴趣的帖子并且进行回复。2.2.2性能需求(1)易用性:符合一般人的操作习惯,出现问题时,能够提示。(2)可修改性:能够根据需求,增加或减少模块。2.2.3系统开发运行环境开发环境:Windows 7 Tomcat6.0 JDK1.7硬件实现:CoreP73502.0GHz 4G内存 80G硬盘开发语言:Java数 据 库:MySQL5.5开发工具:MyEclipse2013 预期成果:一个可扩展的基于MVC模式的 BBS论坛2.3本章小结本章对开发语言进行综述,以及介绍了为什么要使用SSH框架,SSH框架的有点有哪些。并且对系统的需求进行整体的分析,对开发环境进行描述。第3章 系统设计本章为系统设计,主要包括了概要设计,数据库设计,概要设计包括功能模块设计,系统界面设计;而数据库设计包括概念模型设计,数据库表及关系建立,详细数据库结构设计等。3.1 概要设计根据需求分析的结果,对系统进行详细的概要设计。3.1.1功能模块设计绘制出的用例图,将本系统分为两大模块,它们分别是会员资料模块,帖子资料模块和后台管理模块。本系统的功能层次图如图3-1所示。图3-1系统功能层次图如图3-1,BBS系统实现了如下的功能。(1)用户模块1)用户登陆模块:用户可以通过此模块对论坛进行登陆,登陆后便可以使用所有的会员功能。2)用户注册模块:没有帐号的用户,可以通过此模块添加用户信息,添加成功后便可登陆论坛。3)资料修改模块:已注册的用户在登陆后,可以通过此模块,对会员的基本资料,头像等资料进行修改。(2)帖子模块1)发表帖子模块:用户可以在相应的版区中,发表自己的主题,发表成功后,其他用户便可以在相应的版区中看到这篇帖子,并可以对其进行回复等操作。2)回复帖子模块:用户在发表完主题后,用户便可查看相关内容,并可以对已发表的帖子进行回复。3)删除帖子模块:用户可以对自己的帖子进行删除操作。4)更新帖子模块:用户可以对自己的帖子进行修改操作。3.1.2系统界面设计界面设计是人与机器之间传递和交换信息的媒介,对于系统来说,用户界面设计将非常重要,因为一个交互良好的界面能够加深浏览者的印象。(1)要求以易操作性保证读者。交互作品的界面设计采用超媒体链接技术,将文字、图形、图像、声音、动画等媒介要素,进行编排,使之成为一个连贯的整体,呈现在一个复杂的交互系统中。界面反映的是信息的总和而并非单一的信息,倘若在提示、菜单和帮助产生相同术语,在不同的应用系统中应具有相似的界面外观、布局、交互方式及信息显示、界面设计要保持风格的一致性。用户便可以根据自己的认知经验,明白功能操作通过界面上的视觉暗示正确选择内容,在任何地点都能回到主界面或退出整个多媒体作品,因此每个操作对用户来说应是符合逻辑的用户能够较容易了解它要表达的信息与情感。界面设计时需要首先考虑的问题。交互设计作为一种新媒体形态,必然要突出艺术的可视性本质,将新的艺术思想与理念融汇到作品当中,以此去吸引和影响用户。界面使读者打开交互作品时最先接触到的层面,通过可视化界面上设计者运用的前卫化的艺术符号,虚拟化的空间结构营造跳跃式的视觉效果,可以引起用户美好的情感沟通,使得其对设计者通过作品所传达的信息产生共鸣。界面设计的宗旨促进信息的传递以满足用户需求。当进行界面设计时,关键在于界面本身能否有效支撑交互,界面上的组件是为交互行为服务的,它可以很美,很抽象很艺术化,但不能以任何理由破坏作品的交互功能和作用。(2)部分系统界面预览1)注册界面展示本界面主要用户用户注册成为本站会员。图3-2 BBS注册页面2)登录界面展示本界面用户用户进行登录操作,用户输入正确的用户名和密码才能登录到首页。图3-3 BBS登录界面3)主页界面展示用户可以选择在首页直接登录系统,注册或者登录后所进入的界面。图3-4 BBS首页4)帖子详情界面展示用户通过登录后,选择相应的板块进行主题列表,点击主题进入该界面。图3-5 BBS帖子详情5)个人中心界面展示用户通过点击有右上角的用户民进入该界面,该界面具有修改帖子、删除帖子和修改个人资料等功能。图3-6 BBS个人中心3.2 数据库设计数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库和设计概述(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。(3)数据库设计是信息系统开发和建设的重要组成部分。3.2.1概念模型设计(E-R图)数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。 E-R图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图。E-R图的理念是:项目所有参与者能理解E-R图。E-R图由不同实体类型、关系、特性和类型构成。实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。特性用于描述实体,关系用于实体之间。(1)实体:现实世界中的事物;(2)属性:事物的特性;(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。本系统的ER图。图3-7 系统E-R图3.2.2数据库表及关系建立根据以上这些步骤就可以创建一个数据库,依次建立下列表结构。(1)用户基本信息表(2)用户详细信息表(3)论坛帖子表(4)论坛回复表(5)论坛版区表表与表之间的关系如下:(1)用户基本信息表和用户详细信息表是一对一的关系,一个用户对应一个详细信息表。(2)用户基本信息表和论坛帖子表是一对多的关系,一个用户可以发表多篇帖子。(3)用户基本信息表和论坛回复表是一对多的关系,一个用户可以回复多篇帖子。(4)论坛回复表和论坛帖子表是一对多的关系,一篇帖子后面可以跟多篇回复。(5)论坛版区表和论坛帖子表是一对多的关系,在一个版区中可以含有多篇帖子。3.2.3详细数据库结构设计(1)用户基本信息表(userinfo)用户基本信息表中存放的是用户登陆时所需要或者记录用户的基本信息,包含比如登陆名、密码、最后登陆时间等。用户基本信息表的建立主要是记录用户最常用的一些信息。表3-1用户基本信息表字段名数据类型为空说明uIdint(11)否主键uNamevarchar(20)否用户名(唯一)uPassvarchar(20)否密码uPhonevarchar(11)否手机gendervarchar(4)否性别headvarchar(255)是头像regTimedatetime否注册时间(2)分级板块分类表(boardclassify)父板块表存放的是论坛总板块的分类信息。表3-2板块分类表字段名数据类型为空说明classifyIdint(11)否主键classifyNameVarchar(50)否分级板块名称(3)子板块表(boardinfo)子板块表存放的是论坛子板块的信息。表3-3子版块表字段名数据类型为空说明boardIdint(11)否主键boardNamevarchar(50)否子板块名称classifyIdint(11)否父板块id(外键)(4)论坛帖子表(topicinfo)论坛帖子表存放的是用户所发表的主题帖信息。表3-4论坛帖子表字段名数据类型为空说明topicIdint(11)否主键titlevarchar(50)否帖子标题contentvarchar(1000)否帖子内容publishTimedatetime否发表时间modifyTimedatetime否修改时间uIdInt(11)是用户id(外键)boardIdInt(11)否子板块id(外键)replyNumInt(11)否帖子回复数(5)论坛回复表(replyinfo)论坛回复表存放的是用户回复主题的回复信息。表3-5论坛回帖表字段名数据类型为空说明replyIdint(11)否主键contentvarchar(1000)否回帖内容publishTimedatetime否回帖时间uIdint(11)否用户id(外键)topicIdint(11)否子板块id(外键)3.3 本章小节本章根据需求分析的结果,对系统进行详细的概要设计,对系统模块进行详细解说。展示了部分系统界面,详细的说明了数据库中各表的作用等。第4章 系统实现本章界面系统实现,以及各框架的作用。系统实现分为系统框架实现和系统功能模块实现,本章节就是通过这两大块对系统进行设计与实现。4.1 系统框架实现在使用SSH框架进行web开发时,进行后端设计时必然会涉及到类的划分,也就会涉及到层次的划分。所谓层次,也就是一种降低耦合性的措施,人为的通过代码的功能性的不同和调用关系将整个项目的类进行分层。而在使用这些类时,调用关系一般都是顺序的,而且是不可逆的,也就是从上到下的调用关系并不能改变,而且不能越层级而调用,这就降低了代码间的耦合性,因为调用关系相对比较单一,耦合性就较低。一般的分成有这样几层:Model层、Action层、Service层和DAO层。(1)Model层用于描述实例,所有的实例就是整个项目的操作对象,贯穿整个层次框架。(2)Action就是用于处理连接client和后台,接收数据并调用下层操作。这样也屏蔽了下层的实现,只有接口可见;(3)Service层就是整个框架的处理核心,包含了所有逻辑操作,向下调用执行的数据库操作的方法进行持久化;(4)DAO层用于整个框架的数据的持久化。图4-1 S.S.H框架的结合使用4.1.1 Struts、spring、Hibernate在各层的作用(1)struts 负责 web 层 ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward到对应的网页。在struts-config.xml中定义,ActionServlet会加载。(2)spring 负责业务层管理,即Service1)service为action提供统计的调用接口,封装持久层的 DAO。2)可以写一些自己的业务方法。3)统一的javabean管理方法4)声明式事务管理5)集成Hiberante(3)Hiberante 负责持久化层,完成数据库的 crud 操作hibernate 为持久层,提供 OR/Mapping ,它有一组hbm.xml 文件和 POJO, 是跟数据库中的表相对应的。然后定义 DAO ,这些是跟数据库打交道的类,它们会使用 PO。在struts+spring+hibernate 的系统中,对象的调用流程是:jsp-ActionService-DAO-Hibernate。数据的流向是ActionFormBean接受用户的数据,Action将数据从 ActionFromBean中取出,封装成VO或PO,再调用业务层的Bean类,完成各种业务处理后再forward 。而业务层Bean收到这个PO对象之后,会调用DAO接口方法,进行持久化操作。4.1.2底层数据库的建立在前期的数据库选用中,本系统选取了适合中小型网站的MySQL数据库,而在数据库的设计中,本文已经确立了表结构。根据这些就可以创建一个数据库,在数据库创建并连接好后,就可以创建表、修改表和删除表,创建、修改、和删除主键、外键等等。4.1.3 DAO层的建立(Hibernate)本论坛利用了DAO设计模式结合Hibernate框架来创建数据持久化层。DAO(Data Access Object)模式称为数据访问对象模式,其本质是向外部提供一个访问数据源的统一接口,对外隐藏操作数据源的实现细节,而DAO的实现使用的是Hibernate。首先,在spring的配置文件applicationContext.xml中配置dataSource,sessionFactory,然后编写entity层中的实体类。在实体类中,需要加上无参的空实现的构造器,还有getter和setter方法。Hibernate通过注解来映射(OR)对象。注解比以往使用xml文档实现的映射文件更加便捷,只需在实体类中标记“entity”、“Id”等,便可声明Hibernate中持久化类的属性与数据库对应表之间字段的映射关系。接着是DAO接口的定义。DAO接口中定义了特定持久化类所对应的抽象业务逻辑方法。最后是DAO接口的实现类。该类利用HibernateAPI实现DAO接口所定义的抽象方法。(1)applicationContext.xml配置图4-2 applicationContext.xml配置(2)实体类中添加注解支持图4-3 实体类中添加注解4.1.4业务逻辑层的建立本系统的业务逻辑是交由Struts中的Action进行判断的,比如进行用户的登陆和注册的业务逻辑时,会建立一个UserAction类来进行逻辑判断,而一些关联的映射,本系统是写在Struts的struts.xml中。从编码的视角来看,这层是最容易被忽视的一层。 我们往往在持久层周围看到这些业务处理的代码,这其实是不正确的,因为它导致了程序代码的紧密偶合,这样一来,随着时间推移这些代码很难维护。针对这一问题,本系统可以使用Spring框架来解决,利用Spring框架中的“依赖注射”(“控制反转”)把程序中所涉及到包含业务逻辑和Dao的Objects,例如transaction management handler(事物管理控制)、Object Factoris(对象工厂)、service objects(服务组件)都放在Spring的容器中,通过Spring来管理。这种方式让你的对象从创建中释放了出来,降低了偶合度。图4-4 struts的配置4.1.5表示层的建立在表示层上,主要是基于JSP和AJAX异步传输技术来进行建立,最后通过Struts框架的struts.xml文件进行关联映射.具体的页面设计,会在后面的章节中进行介绍。4.2 系统功能模块实现4.2.1用户模块实现在用户模块的设计中,首先完成的是业务逻辑层的相应action类的编写,之后在通过具体的需要,调用DAO操作。在表单验证时使用了Validform v5.3.2,Validform 是一个基于jquery的前端表单插件。在模块的设计过程中,在注册时使用AJAX异步传输,来判断用户名是否可以被注册。AJAX技术是一个基于Javascript脚本语言的技术,目前对这种技术的使用还不是很多,但通过反复的调试,逐渐的掌握了AJAX的要点。通过jquery的失去焦点事件(blur)对用户名的表单进行ajax验证操作。其主要代码如下:(1).form表单代码图4-5 form表单代码(2)jquery验证代码图4-6 jquery验证代码(3)struts.xml配置json节点图4-7 struts.xml配置(4) UserAction中需要创建一个Map集合private Map dataMap;并且生成该集合的get,set方法。图4-8 UserAction部分代码(5)UserDao的实现图4-9 UserDao部分代码(6)效果预览图4-10 注册效果预览当用户登录或者注册成功后,直接进入到首页,首页显示板块信息,用户可以自行选择进入相应的板块。图4-11 首页预览4.2.2帖子模块实现帖子模块的完成流程和用户模块类似,都是先根据JSP网页,建立相应的Action逻辑判断类,之后建立和帖子有关的数据库访问DAO,最后抽象出接口进行依赖注入。编写帖子模块首先遇到的难点是分页功能的实现,当打开某个论坛时,如果论坛中的帖子数量不能在一页中显示出来,那么怎样进行处理。在一些参考学习后,本系统最后编写了一个分页类,来解决这个难题。PageUtil.java、PageUtil.java位于com.bbs.util包下,其中的属性有:图4-12 PageUtil类属性当用户进入某版块时,就会显示出分页信息,并且把相关的帖子发列表送给用户。当我们回复某个帖子时,回复数量都会进行自增。进入帖子后,系统会根据文章发表时间的顺序,将帖子和相关的回复数显示出来。(1)帖子分页界面预览及实现图4-13 帖子分页预览图4-14帖子分页Dao层代码实现(2)帖子详情界面预览及实现图4-15 查看帖子图4-16 帖子详情Dao层代码实现4.2.3用户个人中心模块实现(1)个人中心界面预览在个人中心模块,用户可以对自己的资料进行修改,对帖子进行更新的或者删除,并且可以查看帖子详情。图4-17 个人中心预览(2)修改资料预览通过该界面可以修改头像信息和性别信息。图4-18 修改资料预览(3)修改帖子信息预览通过该界面可以对自己的帖子进行修改。图4-19 修改帖子信息预览(4)个人中心主题显示代码实现图4-20 个人中心主题显示代码实现(5)修改帖子Dao层代码实现图4-21 修改帖子Dao层代码实现4.2.4用户头像上传,与资料修改struts2为文件上传下载提供了更好的实现机制,在使用struts2的文件上传时,这里导入文件上传的commons-fileupload-1.2.2.jar文件。在进行文件上传时,表单提交方式必须为post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写multipart/form-data,不然就会以二进制文本上传到服务器端。(1)form表单设计图4-22 form表单设计(2)struts.xml的上传配置图4-23 struts.xml的上传配置(3)UserAction的编写1)生成filename,filenameContentType,filenameFileName的get,set方法。图4-24 文件属性名2)UserAction的更新资料方法图4-25 UserAction的更新资料方法3)持久层的代码实现图4-26 持久层的代码实现4.3 本章小结本章节通过系统框架实现与系统功能模块实现进行设计,而系统框架的实现分为:Struts、spring、Hibernate在各层的作用,底层数据库的建立,DAO层的建立,业务逻辑层的建立,表示层的建立;系统功能模块实现进行设计分为:用户模块实现,帖子模块实现,用户个人中心模块实现,用户头像上传,与资料修改等。第5章 系统测试本章是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。5.1 测试概述5.1.1软件测试的目的软件测试是软件开发过程中的一个重要组成部分,其目的就是对软件产品(包括阶段性成果)进行验证和确认的活动过程,尽快尽早地发现在软件产品中所存在的各种问题。软件测试是由“验证(verification)”和“有效性确认(validation)”活动构成的整体:(1)“验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性。验证过程提供证据表明软件相关产品与所有生命周期活动的要求(如正确性、完整性、一致性、准确性等)相一致。相当于以软件产品设计规格说明书为标准进行软件测试的活动。(2)“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。一切从客户出发,理解客户的需求,对软件需求定义、设计的怀疑,发现需求定义和产品设计中的问题。这主要通过各种软件评审活动来实现,包括让客户参加评审、测试活动。5.1.2软件测试的任务(1)寻找Bug;(2)避免软件开发过程中的缺陷;(3)衡量软件的品质;(4)关注用户的需求。(5)总的目标是:确保软件的质量。5.1.3测试环境测试环境是在windows版本的Tomcat6.0下进行的。5.2 单元测试单元测试是在编码阶段,针对每个程序单元而进行的测试,其测试的对象是程序系统中的最小单元类、函数、模块或组件等。单元测试主要使用白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件已实现的功能与定义的功能是否一致,以及编码中是否存在错误。白盒测试使用了junit工具,结合Spring的事务管理,可以在不对数据库产生任何影响下,安全地进行白盒测试,并且测试时可以使用Spring的容器,省去了创建对象的操作。5.3 集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,按照设计要求不断进行集成而进行的相应测试,目的是发现单元之间的接口问题,如接口参数类型不匹配、接口数据在传输中丢失、数据误差不断积累等问题。5.4 功能测试功能测试是基于产品功能说明书、用户角度来对各项功能进行验证,以确认每个功能是否都能正常使用。功能测试包括用户界面、各种操作、不同的数据输入输出和存储等的测试。表5-1登陆测试用例测试用例描述操作过程及数据预期结果按不同的输入格式输入个人信息,进行注册。进入注册界面,按提示的输入格式输入个人信息,进行注册。注册成功,显示注册成功。用户信息保存到数据库。用户名有重名的进入注册界面,用户名输入,其它按提示的输入格式输入个人信息,进行注册。注册失败,不能注册。手机按手机有效地址输入,其它按规定输入,进行注册。进入注册界面,输入例如:1887856其它按提示的输入格式输入个人信息,进行注册。注册失败,不能注册。表5-2发贴测试用例测试用例描述操作过程及数据预期结果按要求输入帖子的相关信息进入发贴界面,输入帖子内容,标题,内容,再提交。发贴成功,跳转到帖子界面。没输入标题进入发贴界面,没输入标题,再提交发贴失败。输入为空进入发贴界面,输入为空,再提交。无法发贴。5.5 本章小结本章主要阐述了BBS系统在实际运行中可能存在的问题,如用户注册了同一用户名,用户手机格式错误以及发帖没有标贴或者帖子内容为空等问题,并测试了登录与注册模块的功能,基本上已无问题。总 结经过努力,已经基本完成了BBS系统的开发和设计。完成了用户模块和帖子模块的开发,并基本实现了前期所制定的功能。BBS系统在不断的设计更改过程中,逐渐的成熟。在编码阶段,参考了一些设计模式,在业务逻辑代码和数据库连接DAO中抽象出了若干接口,并对其进行了对象的依赖注入,大大的减少了模块之间的耦合,使系统具有很高的灵活性和可维护性,这是BBS系统最大的优点。系统的另一个优点就是JQuery和AJAX异步传输技术的结合使用,既减轻了服务器的负担,也加快了用户的访问效率。当然BBS系统也存在很多不足的地方,比如搜索功能的添加,用户安全中心的添加,后台管理的添加,希望在今后的学习中,逐步的进行改进。通过这次的设计,加深了对S.S.H框架,以及AJAX的一些理解。对于软件工程方面的设计思想也有了更深一步的理解,只有在不断的实践于学习中,才会得到最丰厚的回报。参 考 文 献1马赛斯扎克.实用软件工程M.北京:机械工业出版社,20132刘易斯.数据库与事务处理M.北京:机械工业出版社,20123Dave Crane.Ajax in ActionM.北京:人民邮电出版社,20144孙卫琴.精通strutsM.北京:电子工业出版社,20165孙卫琴.精通hibernateM.北京:电子工业出版社,20156林信良.spring2.0技术手册M.北京:电子工业出版社,20147佚名.MySQL数据库下的JSP分页查询模块源码EB/OL,20168(美)MartyHall.Servlet与JSP核心编程M.北京:清华大学出版社,20169冯燕奎,赵德奎.JSP实用案例教程M.北京:清华大学出版社,201310(美)Jim Arlow.UML2.0 and the Unified ProcessM.北京:机械工业出版社,201511徐建波,周新莲.Web设计原理于编程技术M.北京:中南大学出版社,201212孙鑫编.Java Web开发详解M.北京:电子工业出版社,201613林上杰,林康司.JSP2.0技术手册M.北京:电子工业出版社,201414萨师煊,王珊.数据库系统概论(第三版)M.北京:高等教育出版社,201415蔡剑,景楠.Java Web应用开发:J2EE和TomcatM.北京:清华大学出版社,201416朱少民.软件测试方法和技术M.北京:清华大学出版社,2013致 谢历时将近三个月的时间终于将毕业设计和论文完成,在毕业设计的完成过程中遇到很多的困难,都在同学和老师的帮助下克服了。尤其要感谢我的指导老师,熊登峰老师,他对我进行了无私的指导和帮助,悉心地帮助我进行论文的修改。感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在我开发论坛和写论文的过程中给予我很多的启发和指导,还在论文的撰写和排版过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!在完成毕业设计期间,感谢我的朋友对我的帮助,在我困难的时候提出了很好的建议,在此表示深深的感谢。袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅

温馨提示

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

评论

0/150

提交评论