关于建立BBS论坛.doc_第1页
关于建立BBS论坛.doc_第2页
关于建立BBS论坛.doc_第3页
关于建立BBS论坛.doc_第4页
关于建立BBS论坛.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计设计题目 学生姓名 专业班级 指导教师 2012年 月 日摘 要当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。为了方便信息的交流,在结合JAVA和S.S.H 技术之下开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。论坛在StrutsHibernateSpring扩展Struts框架的基础上,用当今主流的网站开发技术jsp语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。数据库采用免费,小巧,易用的mysql数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!关键词:BBS ,S.S.H(Struts ,Hibernate ,Spring),JAVA , MySQL ,JSP目 录摘要.Abstract.目 录.第一章系统概述.11.1开发背景.21.2开发目的.3第二章系统分析.42.1技术可行性分析.42.1.1 MySQL数据库的选用.52.1.2 S.S.H框架优点.62.3系统需求分析.102.3.1 系统开发运行环境.102.3.2业务描述.112.3.3 系统功能概述.122.3.4 数据流程.12第三章系统设计.163.1数据库设计.163.1.1概念模型设计(E-R图).163.1.2数据库表及关系建立.183.2系统概要设计.233.2.1功能模块设计.233.2.2系统界面设计.26第四章系统的详细设计与实现.314.1系统框架实现.314.1.1底层数据库的建立.314.1.2持久化层的建立(hibernate).324.1.3业务逻辑层的建立.334.1.4表示层的建立.364.2系统功能模块实现.364.2.1会员模块实现.364.2.2帖子模块实现.394.2.3后台管理模块实现.42第五章系统的测试.455.1测试概述.455.1.1软件测试的任务.455.1.2测试环境.46第六章结论.52参考文献.53致 谢.54附录A 翻译.68第 1 章 系统概述1.1 开发背景1978年在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系统。之后随着苹果机的问世,开发出基于苹果机的Bulletin Board System和大众信息系统(Peoples Message System)2种BBS系统。1981年IBM个人计算机诞生时,并没有自己的BBS系统。直到1982年,Buss Lane 才用Basic语言为IBM个人计算机编写了一个原型程序。其后经过几番增修,终于在1983年通过Capital PC User Group(CPCUG)的Communication Special Interest Group会员的努力,改写出了个人计算机系统的BBS。经Thomas Mach整理后,终于完成了个人计算机的第1版BBS系统RBBS-PC。这套BBS系统的最大特色是其源程序全部公开,有利于日后的修改和维护,因此后来在开发其他的BBS系统时都以此为框架,所以RBBS-PC赢得了BBS鼻祖的美称。大约是从1991年开始,国内开始了第一个BBS站。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,BBS才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的BBS站,按其性质划分,可以分为2种:一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。由于使用商业BBS站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余BBS站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络China FidoNet(中国惠多网)。于是,各地的用户都可以通过本地的业余BBS站与远在异地的网友互通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余BBS站拥有这种优势,所以使用者都更乐意加入。这里“业余”2字,并不是代表这种类型的BBS站的服务和技术水平是业余的,而是指这类BBS站的性质。一般BBS站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平国内的BBS站,大多数还是大型综合性BBS站。随着计算机的普及,特别是宽带的普及,BBS的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS将会慢慢增加需求。尽管BBS站台的数量在不断增长,但BBS的发展过程,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。 而国内自己开发的BBS基本上都是处于最原始的JSP MODEL1模式, 这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了BBS站点的扩展,于是在这种情况下,本文提出了目前比较流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!1.2 开发目的综上所述,本文提出了目前比较流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!第 2 章 系统分析2.1技术可行性分析2.1.1 MySQL数据库的选用MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任MySQL具有以下优点:1、首先是速度。对于MySQL来说,速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。但是在最新的文档中,我们看到MySQL 4.0.2-alpha已经开始支持事务,而且在MySQL的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。但是,仍然有理由相信,MySQL将有可能一直保持速度的优势。2、MySQL更流行,流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。3、MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在NT/Win2000/WinXP下,是一个服务), 在Windows运行中,MySQL更加的稳定。4、MySQL使用了线程,在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。5、MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。6、MySQL在权限系统上更为完善。MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限。MySQL还允许你指定基于主机的权限。7、由于MySQL 4.0.2-alpha开始支持事务的概念,因此事务对于MySQL不再仅仅成为劣势。相反,因为MySQL保留无事务的表类型。这就为用户提供了更多的选择。 8、MySQL的MERGE表提供了一个独特管理多个表的方法。9、MySQL的myisampack可以对只读表进行压缩,此后仍然可以直接访问该表中的行。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、对动态语言的简洁访问等,它由以下3个框架构成:1.Struts框架Struts是Apache组织的一个开放源码项目。Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。其基本构成如图2.1所示。图2.1 Struts框架工作流程2.Spring框架Spring 的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate 等),Spring 也提供了与它们相整合的方案。Spring框架由以下7个部分组成图2.2 Spring框架构成3.Hibernate框架Hibernate 是一个开放源码的 ORM 持久层框架。作为优秀的持久层框架实现,Hibernate 框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。图2.3 Hibernate框架2.3 系统需求分析2.3.1 系统开发运行环境鉴于系统的开发语言和数据库,采用如下的开发环境开发环境: Windows 2000NT TomCat6.0 JDK1.5硬件实现: Pentium2.4G 1G内存 80G硬盘开发语言: Java数 据 库: MySQL开发工具: MyEclipse5.1 预期成果: 一个可扩展的基于MVC模式的 BBS论坛2.3.2 业务描述对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等,系统的用例图如下:会员用户临时用户浏览帖子发表帖子回复帖子修改资料会员搜索管理员会员管理帖子管理论坛信息管理图2.5 系统用例图2.3.3 数据流程本系统是为了提供给广大用户一个网上交流的平台,所以论坛的流程是以用户为中心进行的.数据流图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据流图具有以下两个特性:(1)抽象性:表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理与存储。(2)概括性:表现在它可以把信息中的各种不同业务处理过程联系起来,形成一个整体。数据流图由以下四种基本元素组成,既外部实体、数据流、处理(功能)、数据存储等,数据流图中所用的符号如下: 外部实体 处理 数据流 数据存储LeafBBS论坛系统的数据流程图如下用户查看帖子P2F1帖子资料P3回复帖子P1发表帖子P4搜索帖子P5搜索用户F2用户资料P6资料修改(1)(3)(2)(4)(5)(5)(6)(7)(8)(9)(10)(11)(12)(13)说明:访问信息,用户信息,发表帖子信息,更新帖子信息,搜索信息获取帖子信息,回复信息,搜索用户,更新用户信息,获取用户资料图2.6 数据流程图第 3 章系统设计在前期的系统结构分析的基础上,对系统进行概要设计.3.1 数据库设计数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求).数据库和设计概述(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。(3)数据库设计是信息系统开发和建设的重要组成部分。3.1.1概念模型设计(E-R图)数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。 E-R模型的基本概念 ER图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图。ER图的理念是:项目所有参与者能理解ER图。ER图由不同实体类型、关系、特性和类型构成。实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。特性用于描述实体,关系用于实体之间(1)实体:现实世界中的事物; (2)属性:事物的特性; (3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。本系统的ER图用户M发表N帖子 详细资料11N管理管理员 1 N添加1修改论坛图3.1 系统E-R图3.1.2数据库表及关系建立根据以上这些步骤就可以创建一个数据库,依次建立下列表结构.1.用户基本资料表2.用户详细信息表3.论坛文章表4.论坛版区表 5.论坛初始化信息表 (1).用户基本信息表 和用户详细信息表是一对一的关系,一个用户只对应一个详细的信息表(2).用户基本信息表和文章表是一对多的关系,即一个用户可以发表多篇文章和回复.(3).论坛版区表和论坛文章表是一对多的关系,在一个论坛中可以含有多个文章和回复.3.2 系统概要设计根据需求分析的结果,对系统进行详细的概要设计3.2.1功能模块设计绘制出的用例图,将本系统分为三个大的模块,他们分别是会员资料模块,帖子资料模块和后台管理模块!本系统的功能层次图如图3.2.1所示Leafbb系统会员模块帖子模块后台管理会员登录会员注册资料修改帖子发表回复帖子帖子查找论坛管理帖子管理图片管理会员管理会员查找图3.2系统功能层次图如图3.2.1,leafbbs系统实现了如下的功能.(1).会员模块: 此模块用来实现会员的登陆注册和会员资料的修改和查找.1.会员登陆模块:会员可以通过此模块对论坛进行登陆,登陆后便可以使用所有的会员功能,比如发帖回复等等.2.会员注册模块:没有会员帐号的用户,可以通过此模块添加会员信息,添加成功后便可登陆论坛,使用会员功能.3.资料修改模块:已注册的会员在登陆后,可以通过此模块,对会员的基本资料,联系方式,密码,头像等资料进行修改.4.会员查找模块:已注册的会员在登陆后, 可以通过此模块,对会员进行查找,并可以查看对方的资料,联系方式等等,从而方便会员之间的联系.(2).帖子模块:1.帖子发表模块:已注册的会员在登陆后,可以在相应的论坛中,发表或转载自己的大作,发表成功后,其他会员便可以在相应的论坛中看到这篇帖子,并可以对其进行回复等操作.2.帖子回复模块:会员在发表完帖子后,用户便可查看相关文章,并可以在文章中对已发表的帖子进行回复,3.帖子查找模块会员可以通过此模块,根据帖子的标题和作者,对相关的帖子进行查找.(3).后台管理:1.帖子查找模块:此模块和帖子模块中的帖子查找类似,只是管理员的搜索条件比普通用户更加的广泛,使搜索变的便捷.2.帖子管理模块:帖子管理模块是管理员对帖子管理的平台,如果管理员查看到帖子有不适宜发表的内容时,可以对帖子选择删除或者锁定等操作,如果看到优秀的帖子,还可以将帖子进行置顶,加精,帖子管理模块帖子修改帖子删除帖子锁定帖子置顶帖子加精图3.3帖子管理模块功能层次图3.会员管理模块:管理员可以通过此模块,对会员进行管理,对一些不法的用户可以修改或者删除资料,4.论坛管理模块.管理员对论坛的添加,创建,删除等功能都是在此模块里进行处理.5.图片管理模块管理员可以管理用户上传的头像,和在文章里发表的图片,从而加强对图片的控制3.2.2系统界面设计对于系统来说,用户界面设计将非常重要,因为一个交互良好的界面能够加深浏览者的印象.设计的实现可以分为两个部分。第一部分为站点的规划及草图的绘制,这一部分可以在纸上完成。第二部分为网页的制作,这一过程是在计算机上完成的.设计首页的第一步是设计版面布局。我们可以将网页看作传统的报刊杂志来编辑,这里面有文字、图像乃至动画,我们要做的工作就是以最适合的方式将图片和文字排放在页面的不同位置。 除了要有一台配置不错的计算机外,软件也是必需的。不能简单地说一个软件的好坏,只要是设计者使用起来觉得方便而且能得心应手的,就可以称为好软件。当然,它应该能满足设计者的要求。常用的软件是Macromedia的Dreamweaver以及Adobe的Photoshop。设计是有原则的,无论使用何种手法对画面中的元素进行组合,都一定要遵循五个大的原则:统一、连贯、分割、对比及和谐。统一,是指设计作品的整体性,一致性。设计作品的整体效果是至关重要的,在设计中切勿将各组成部分孤立分散,那样会使画面呈现出一种枝蔓纷杂的凌乱效果。连贯,是指要注意页面的相互关系。设计中应利用各组成部分在内容上的内在联系和表现形式上的相互呼应,并注意整个页面设计风格的一致性,实现视觉上和心理上的连贯,使整个页面设计的各个部分极为融洽,犹如一气呵成。分割,是指将页面分成若干小块,小块之间有视觉上的不同,这样可以使观者一目了然。在信息量很多时为使观者能够看清楚,就要注意到将画面进行有效的分割。分割不仅是表现形式的需要。换个角度来讲,分割也可以被视为对于页面内容的一种分类归纳。对比就是通过矛盾和冲突,使设计更加富有生气。对比手法很多,例如:多与少、曲与直、强与弱、长与短、粗与细、疏与密、虚与实、主与次、黑与白、动与静、美与丑、聚与散等等。在使用对比的时候应慎重,对比过强容易破坏美感,影响统一。和谐是指整个页面符合美的法则,浑然一体。如果一件设计作品仅仅是色彩、形状、线条等的随意混合,那么作品将不但没有“生命感”,而且也根本无法实现视觉设计的传达功能。和谐不仅要看结构形式,而且要看作品所形成的视觉效果能否与人的视觉感受形成一种沟通,产生心灵的共鸣。这是设计能否成功的关键。最后简单设计系统的简单登陆界面和主界面图3.4用户登陆界面图3.5用户登陆后的主界面第 4 章 系统的设计与实现程序设计又称编码,是系统生命周期中继详细设计之后的阶段,这个阶段的任务是使用选定的程序设计语言,把经过概要设计和详细设计所得到的以程序设计说明书体现的信息处理过程描述后,转换成能在计算机系统上运行的程序源代码。4.1 系统框架实现在系统的整体设计中,我们采取了四层结构.这样结构的优点是灵活,移植和可维护性比较高. 每个层在处理程序上都应该有一项明确的责任, 而不应该在功能上与其它层混合,并且每个层要与其它层分开的图4.1 S.S.H框架的结合使用4.1.1底层数据库的建立在前期的数据库选用中,本系统选取了灵活高速的 MySQL数据库,而在数据库的设计中,本文已经确立了表结构. 根据这些就可以创建一个数据库,在数据库创建并连接好后,就可以创建表、修改表和删除表,创建、修改、和删除主键、外键等等。选中“leafbbs”数据库,use database并使用Create tableSql语句,依次创建以下表结构。由于考虑到本系统是应用在单机系统上,另外根据管理的规模,我们只建立一个数据库,在此数据库基础上建立leafbbs_userinfo 用户基本资料表leafbbs_userdetai 用户详细信息表leafbbs_forum 论坛文章表leafbbs_board 论坛版区表 leafbbs_config 论坛初始化信息表 4.1.2持久化层的建立(hibernate)典型的Web应用的另一个末端是持久层。Hibernate为java提供了OR持久化机制和查询服务, 它还给已经熟悉SQL和JDBC API 的Java开发者一个学习桥梁,他们学习起来很方便。 Hibernate的持久对象是基于POJO和Java collections。此外。 系统建立Hibernate的持久层 。 首先把BO持久化。 Hibernate是通过POJO工作的, 因此数据对象需要给所有的fileds 加上getter,setter方法。 Hibernate通过XML文件来映射(OR)对象,以下xml文件分别映射了相应对象。 1.userinfo.hbm.xml 2.userdetai.hbm.xml 3.forum.hbm.xml4.board.hbm.xml5.config.hbm.xml图4.2 userinfo.hbm.xml 映射文件本系统可以在com.leafbbs.bean目录下找到这些xml文件。Hibernate配置文件的作用用来告诉程序 应该与哪个数据库通信,该使用哪个连接池或使用了DataSource, 应该加载哪些持久对象。而Session接口是用来完成Selecting,Saving,Delete和Updating这些操作。4.1.3业务逻辑层的建立本系统的业务逻辑是交由struts中的Action进行判断的,比如判断登陆的业务逻辑时,会建立一个LoginAction类来进行逻辑判断,而一些关联的映射,LeafBBS系统是写在struts框架的struts-config.xml中.图4.3 struts-config.xml 映射文件 从编码的视角来看,这层是最容易被忽视的一层。 却往往在持久层周围看到这些业务处理的代码,这其实是不正确的,因为它导致了程序代码的紧密偶合,这样一来,随着时间推移这些代码很难维护。幸好,针对这一问题本系统可以使用Spring框架来解决.spring框架都着手于“依赖注射”(dependency injection)(还有我们知道的控制反转Inversion of Control=IoC)这样的简单概念。Spring还提供了Setter Injection(type2),Constructor Injection(type3)等方式供选择。 Spring把程序中所涉及到包含业务逻辑和Dao的Objects例如transaction management handler(事物管理控制)、Object Factoris(对象工厂)、service objects(服务组件)都通过XML来配置联系起来。这种方式让你的对象从创建中释放了出来,降低了偶合度.图4.4 spring 配置文件 applicationContext.xml 映射文件每个对象都可以在Spring 配置信息applicationContext.xml中用标签引用。在这里,mySessionFactory引用了HibernateSessionFactory,而myTransactionManager引用了HibernateTransactionManage。 代码中myTransactionManger Bean有个sessionFactory属性。 HibernateTransactionManager有个sessionFactory setter 和 getter方法,这是用来在Spring启动的时候实现依赖注入 (dependency injection)的。 在sessionFactory 属性里 引用mySessionFactory。这两个对象在Spring容器初始化后就被组装了起来了。 这样的搭配让你从 单例(singleton objects)和工厂(factories)中解放了出来,降低了代码的维护代价。 mySessionFactory.的两个属性,分别是用来注入mappingResources 和 hibernatePropertes的。图4.5 Spring基于配置文件,将各个Bean搭建在一起。4.1.4表示层的建立在表示层上,主要是基于JSP和AJAX异步传输技术来进行建立,最后通过Struts 框架的struts-config.xml文件进行关联映射.具体的页面设计,会在后面的章节中进行介绍.4.2 系统功能模块实现4.2.1会员模块实现在会员模块的设计中,首先完成的是业务逻辑层的相应action类的编写,之后在通过具体的需要,编写相应的数据库访问DAO.在一切结束之后,从DAO和业务逻辑类中抽象出接口,通过spring的IOC对接口进行对象注入.在模块的设计过程中,遇到的难点是在注册时使用的AJAX异步传输,来判断用户名是否被占用.AJAX技术是一个基于Javascript脚本语言的新技术,目前对这种技术的使用还不是很多,但通过反复的调试,逐渐的掌握了AJAX的要点.图4.6 AJAX技术 在本系统中的应用当用户在登录的时候,会有一个验证码的文本框,而验证码的实现是通过访问servlet技术实现的,在打开登录界面时, servlet会自动向首页发送一组图片,并且发送一个相应存放数字的session,当用户提交信息时,系统就会在session中提取数字并和用户的数字进行比较,错误则会弹出错误信息.图4.7 验证码的应用 当用户在登录成功后,或者选择游客模式进入论坛时,会跳转到论坛的主界面,主界面的实现主要是通过HTML的 标记,将页面划分成两个部分,左面的部分是用户的操作框,右面是论坛的信息部分.已登录的用户可以通过左面的操作框来对自己的一些资料进行修改,也可以选择退出等其他操作.图4.8 用户主界面用户信息模块功能流程图开始进入登录页面游客登录?输入账号密码帐号正确进入主界面结束NYYN图4.9 用户模块功能流程图4.2.2帖子模块实现帖子模块的完成流程和会员模块类似,都是先根据JSP网页,建立相映的Action逻辑判断类,之后建立和帖子有关的数据库访问DAO,最后抽象出接口进行依赖注入,编写帖子模块首先遇到的难点是分页功能的实现,当打开某个论坛时,如果论坛中的帖子数量不能在一页中显示出来,那么怎样进行处理.在一些参考学习后,本系统最后编写了一个分页bean,来解决这个难题,分页bean的位置在com.leafbbs.service.web包下,其中的属性有 int page 当前页数 int perPageNum 本页显示的帖子数目 int allPage 总页数 int cpage 本页首个帖子 序号 int spage 本页最后帖子 序号String fileName 页名这样一来,系统就可以把页数的信息,封装到bean里面,并且进行相关的显示图4.11 分页功能的实现 当用户进入某分论坛时,就会显示出分页信息,并且把相关的帖子封装到response响应中,发送给用户.当我们每次查看某个帖子,或回复某个帖子时,帖子表里的字段,ReNum(回复数量),ClickNum(点击数量)都会进行自增.进入帖子后,系统会根据文章发表时间的顺序,讲帖子和相关的回复显示出来图4.12 查看帖子开始显示论坛信息进入相关论坛显示文章列表浏览相应帖子回复是否继续浏览结束Y N图4.13 帖子模块功能流程图4.2.3后台管理模块实现后台管理模块是管理员对论坛进行管理的平台,在此模块实现的过程中,最重要的一点就是权限的控制,只有管理员的身份才可以对此模块进行操作,权限的控制已经交给了控制组件进行完成.管理员可以在此模块中主要完成对帖子和会员的管理,管理员可以通过用户的ID和用户名对其进行搜索,从而实现管理图4.14 管理员对用户进行管理此外管理员还可以进行添加,修改论坛信息图4.15 管理员对用户进行管理登陆系统后台管理前端显示用户数据库用户管理查询数据库信息修改新建用户用户删除帖子查看登陆界面信息输入提交确认身份 N Y图4.10后台模块功能图第 5 章系统的测试5.1 测试概述5.1.1软件测试的任务1、寻找Bug; 2、避免软件开发过程中的缺陷; 3、衡量软件的品质; 4、关注用户的需求。总的目标是:确保软件的质量5.1.2测试环境Apache提供的Web服务器Tomcat 6.0使得用户可以在Windows 2000以上操作系统下发布自己设计的动态网页。因此对论坛的调试工作主要是利用Tomcat 6.0的强大功能在本机下完成的。为了在本机下浏览Web页面,首先在创建该系统的站点上(该系统使用的是Web的默认站点)将IP地址设定为,它的缺省域名值为localhost。然后向IE浏览器输入本地动态网页的URL,Web服务器在收到浏览器传送的URL之后找到网页文件,并在服务器端执行该文件后将此文件以HTML文件的形式返回该浏览器。第 6 章结论经过几个月的努力,已经基本完成了LeafBBS系统的开发和设计.完成了用户模块,帖子模块和后台管理模块的开发,并基本实现了前期所制定的功能.LeafBBS系统在不断的设计更改过程中,逐渐的成熟。在编写的最后阶段中,参考了一些设计模式,在逻辑代码和数据库连接DAO中抽象出了若干接口,并对其进行了对象的依赖注入,大大的减少了模块之间的耦合,使系统具有很高的灵活性和可维护性,这是LeafBBS系统最大的优点.另外在系统的另一个优点就是HTML同步传输和AJAX异步传输技术的结合使用,既减轻了服务器的负担,也加快了用户的访问效率.当然LeafBBS系统也存在很多不足的地方,比如用户的权限判断过于简单,安全性低,希望在今后的学习中,逐步的进行改进.通过这次的设计, 加深了对S.S.H框架,以及面向对象思想的一些理解.对于软件工程方面的设计思想也有了更深一步的理解,只有在不断的实践于学习中,才会得到最丰厚的回报.参考文献1 冯燕奎, 赵德奎. JSP实用案例教程M 清华大学出版社, 2004, 5: 70-1002 王家华 软件工程M东北大学出版社2001年3月303页3 王宜贵 软件工程M 北京:机械工业出版社,2002:20-794 孙卫琴 精通strutsM电子工业出版社 2004年8月 50-705 孙卫琴 精通hibernateM电子工业出版社 2005年4月 100-1206 张洪斌 java2高级程序设计M中科多媒体出版社 2001年11月 85-907 Jim Arlow UML2.0 and the Unified ProcessM机械工业出版社 2006年6月 30-408 林信良 spring2.0技术手册M电子工业出版社 2006年6月 50-1009 熊节、林仪明、张凯峰、陈玉泉等主编CSDN社区电子杂志Java杂志创刊号 10程序员杂志 2007 年第4期11 耿祥义编著JSP基础编程M清华大学出版社,200455-16212徐建波,周新莲Web设计原理于编程技术M中南大学出版社,2005185-19313 孙鑫编著Java Web开发详解M电子工业出版社,2006189-27414 林上杰,林康司编著JSP2.0技术手册M电子工业出版社,20043-615 萨师煊,王珊.数据库系统概论(第三版)M.北京:高等教育出版社,1998.16 蔡剑,景楠.Java Web应用开发:J2EE和TomcatM.北京:清华大学出版社,2004.致 谢 在设计的几个月中,感谢我的导师 *老师对我的帮助和悉心的指导,老师在我的设计和论文中给了我很多帮助,在此表示深深的感谢另外在设计的过程中同组的同学和我实习的单位赛斯特IT培训中心也给了我莫大的支持,在此也表示衷心的感谢附录A 1.1.1比较用户体验花几分钟使用一下你选中的应用(浏览器除外),记下它用到了哪些用户交互,然后马上回来。为了简短起见,我举一个电子表格的例子,但是,这里所涉及的要点是通用的,足以针对文本编辑器上的各种情形。 好,我们开始。先在电子表格中随便输入几个等式,注意到,可以以几种方式进行交互:编辑数据,用键盘和鼠标浏览数据,还可以使用鼠标拖拽来重新组织数据。我做这些操作的时候,程序给了我反馈。移动鼠标的时候,光标改变了形状;当鼠标停在上面的时候,按钮变亮了;选中的文字也改变了颜色。窗口或者对话框被选中的时候,也和平常显得不一样了,等等(图1-1)。这些就是所谓“富”的交互。当然了,仍然有一些有待改进的地方,但这是一个好的开始。OK,电子表格就是一个富客户端程序了吗?当然不是。在电子表格或者类似的桌面应用中,业务逻辑和数据模型是在一个封闭的环境中运行的。在这个环境中,它们彼此清晰地了解对方,并且可以互相访问,而环境之外的东西,对于它们来说是未知的(图1-2)。那么客户端又 是什么呢?它是与另一个独立的进程相互通信的程序,后者通常运行在服务器上。一般来说,服务器总是要比客户端大一些,能力强一些,配置更好一些,因为在服 务器上通常要存储浩如烟海的信息。客户端程序使得最终用户可以查看和修改这些信息,当多个客户端连接在同一个服务器上的时候,可以在它们之间共享这些信 息。图1-3展示了一个简单的客户/服务器架构在现代的n层架构中,服务器往往要和更远的后端服务器(例如数据库)通信,因此被称作“中间件”的层同时扮演着客户端和服务器的角色。我们的Ajax应用位于这个链的一端,它仅仅是作为客户端,因此为讨论方便,我们可以把整个n层系统看作是一个标记为“服务器”的黑盒。我的电子表格应用只需要管理它自己保存在内存或本地文件系统中的少量数据。如果架构设计良好的话,数据和它的表现形式的耦合可以非常松散,但是我不能通过网络来分割或者通过网络来共享它们。从这个意义上来说,电子表格应用不是一个客户端。与之相对应的Web浏览器就是一个典型的客户端,它与Web服务器通信,请求需要的页面。浏览器有丰富的功能,用来管理用户的浏览行为,常见功能有回退按钮、历史列表和分页浏览多个文档等等。但是当我们把特定网站的Web页面看作是一个应用时,这些通用的浏览功能实际上和应用关系不大,充其量也就如电子表格和Windows的开始按钮或者窗口列表之间的关系。我们来考察一下现代的Web应用。为了简单起见,我们选择了“地球人都知道”的在线书店A(图1-4)。在浏览器中打开Amazon网站,因为在此之前我访问过,它会给我显示一个友好的问候、一些推荐书目,还有我的购买历史信息。点击推荐书目中的任何一条,就会转到另外一个页面(此时,页面要刷新一下,在这几秒钟内我什么也看不到)。新页面是该书的相关信息:书评、二手书报价、同一作者的其他著作,以及以前我浏览过的其他书籍简 而言之,呈现在我面前的是非常丰富的、关联度很高的信息。但是对我而言,交互的方式就是点击那些超链接,然后填写一些表格。假设我在键盘前面不小心睡着 了,第二天才醒来,如果不刷新页面,我就没法知道哈里波特系列的新书已经出版了,也不能将我的列表从一个页面带到另一个页面,我要是想同时看到更多 一些东西也不行,因为我无法改变页面上局部内容区域的大小。我似乎是在批评Amazon的界面,其实并非如此,我只是拿它来做个例子。事实上,在传统Web开发方式的桎梏下,他们已经做得非常棒了。但是比起电子表格来说,它所用的交互模型毫无疑问是太有限了。为何现代的Web应用仍然有这么多的局限呢?造成目前的状况有一些合理的技术原因,我们现在就来考察一下。1.1.2 网络延迟因特网的宏伟蓝图是将这个世界上所有的计算机都连接起来,形成一个无比巨大的计算资源。如果能把本地调用和远程调用

温馨提示

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

评论

0/150

提交评论