软件技术毕业论文基于JSP的学生论坛系统的设计与实现.doc
-
资源ID:4866021
资源大小:774.02KB
全文页数:38页
- 资源格式: DOC
下载积分:10金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
软件技术毕业论文基于JSP的学生论坛系统的设计与实现.doc
天津工业大学 毕业设计(论文)基于jsp的学生论坛系统的设计与实现 姓 名 xxx 学 院 计算机科学与软件 专 业 软件技术 指导教师 xx 职 称 讲师 2011 年 05月07日目 录前 言I第1章 概 述11.1 课题研究的背景和来源11.2 课题研究成果应用的实际意义11.3 本文的内容及主要工作2第2章 相关技术简介32.1 B/S架构的介绍32.2 JSP技术的介绍32.3 JSP技术的优势与劣势42.4 Struts 框架42.5 本章小结7第3章 需求分析83.1 系统实现目标83.2 系统运行环境83.3 系统的开发环境93.4 功能性需求描述93.5 文件夹组织结构133.6 非功能性需求描述133.7 本章小结14第4章 系统设计154.1 系统设计原则154.2 数据库设计154.3 用户发布主题模块设计194.4 本章小结20第5章 系统实现225.1 发布主题实现过程225.2 本章小结29第6章 系统测试306.1 测试的概念306.2 本系统的测试方法306.3 本章小结31第7章 总 结327.1 工作总结327.2 系统的完善和心得32参考文献33致 谢35天津工业大学2011届高职生毕业设计(论文)前 言随着网络时代的来临和冲击,全球经济一体化的趋势加强,各国都面临着前所未有的机遇和挑战。论坛作为一种先进的交流方式和管理技术,被广泛认为是企业和网站在运作中一种新型和快捷的交流形式,提高了用户对企业和网站的认知,方便了用户回馈意见,在企业的竞争和发展中发挥着重要作用。论坛作为网络时代的代表性标志之一,越来越多的被人们喜欢上了这种新的研究问题的形式。随着论坛的热度逐渐升高,网络论坛进入战国时代,大大小小的网络论坛生长着消亡着,而随着网络的迅猛发展,网民们也逐渐分野细化,分类细化的网络社区呼之欲出。在对如今如此激烈的各种论坛中,结合不同的的要求和业务需要,设计了一个适合于各种企业需要的,具有较强扩展性的论坛系统。系统的主要功能是建立一个可以讨论各种问题的专区,可以让用户和游客发表自己的意见和建议,通过这样不断的完善企业或者网站的建设,同时也给用户提供了一个交流的平台。本论坛同时具备管理员管理系统,方便专门负责的管理员管理用户的信息、权限,发表的主题等。系统采用B/S架构,易于论坛拥有者要求的不同进行扩展。论坛的用户可以到自己喜欢的论坛栏目下进行讨论,极大的方便了企业公司或者其他网站等同用户间的联系,更好的了解用户的想法。同时对于企业或网站的宣传起到了极大的促进作用。目前活跃的网络论坛有强国论坛、中青论坛、球迷一家等。强国论坛是人民网开设的论坛,目的是为那些爱国无门又有一腔热血堵在心头的爱国志士们设立的。中青论坛是中青在线的论坛,其中的青年话题是人气最旺的论坛,由中青报编辑李方主持,以为文学女青年排忧解难和抒发小资情调为宗旨。球迷一家和前面提到的天涯社区都属于海南在线,主要收容当年从新浪体育沙龙逃亡的散兵游勇。还有一些人气未必很高但声望不低的专业类论坛。IT方面有新浪IT业界论坛和DONEWSIT写作社区,摄影类有第三只眼和江湖色论坛,文学类有橄榄树和诗生活等。这些论坛有个共同的特点:在喧闹的网络背景下,惨淡经营,低调运作。而混迹于其中的网民图的是,有朝一日,能脱颖而出,在业界找到自己的一席之地,所以论坛系统对于企业和用户的作用都是巨大的。总之,随着论坛技术的发展,论坛领域的不断扩大,越来越多的网站如雨后春笋一样出现在网络上,这些论坛不仅能提供给用户一个交流的平台,更为企业和一些知名网站提高了影响力和知名度。在这个信息化的时代中,论坛逐渐成为了一种引领企业进步,甚至是整个社会进步的标志性文化I天津工业大学2011届高职生毕业设计(论文)第1章 概 述1.1 课题研究的背景和来源BBS的英文全称是Bulletin Board System,翻译为中文就是“电子公告板”。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。目前,通过BBS系统可随时取得国际最新的软件及信息,也可以通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS系统来刊登一些“征友”、“廉价转让”及“公司产品”等启事,而且这个园地就在你我的身旁。只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域,进而去享用它无比的威力!从构建的方式上分,BBS可以分为PC BBS和Internet BBS。PC BBS是利用现有的电话网组成的BBS系统,由于构建费用较少,所以上面所说的BBS一般都是基于这种方式构建的。当业余BBS站的发展如火如荼的时候,随着ChinaNet的全面开通,越来越多的人用上了Internet,并从中体会到了使用它的方便与乐趣。建立在Internet基础上的BBS,也就是Internet BBS,已经开始发展。但是,由于目前构建Internet BBS的费用较高,所以还没有形成较大的规模。相信随着Internet使用费用的下降,这种类型的BBS将会越来越多。BBS的发展过程中,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。 1999年是中国网络的发展年。但是,我们应该清醒地认识到,目前一些BBS站并没有走上“简单、易用”这一层次。包括一些厂商架设的BBS站,实用性还需要加强。今后,国内的BBS站将向着个性化和专业化的方向发展。综上所述,一套好的BBS站台对于一个企业或者网站是十分重要,它与整个企业或者网站的发展息息相关,所以本人制作了一个扩展性极强,操作简便的BBS论坛站台。1.2 课题研究成果应用的实际意义本文研究的主要目的是实现一个BBS论坛,能使用户发表自己的想法,同时管理员可以管理论坛的情况,并在此基础上实现企业与用户之间沟通的功能。由于各个企业和网站有各自的项目和产品的不同,各式各样的的论坛不断的如雨后春笋滋生出来。平时对于企业的宣传开发的过程中,需要对不同的企业实现不同的设计。而在论坛系统开发的时候,只需要把该企业的需要的模块添加到论坛设置好的模块中即可。这种形式的论坛开发方式偏重于应用和扩展性,极大的方便了企业的管理和规划。普通的广告形式如果需求有了变化,往往要大面积地修改代码,甚至是重新开发。这样就浪费了大量的人力物力。要达到降低开发成本的目的,最直接的方法就是复用以前的系统。论坛系统只需要管理员不断的对已经形成好的模块形式进行更新就可以达到需要的目的,这就是论坛系统相对于其他的形式的网站的优越性。 本课题研究的系统,就是要通过Web服务器在企业的不同网站间架设属于本企业的论坛。为企业与用户间搭建起一个桥梁,并在此基础上添加注册用户,管理用户等功能,实现企业中的技术讨论,社区建设,更好的为企业服务。1.3 本文的内容及主要工作本文在分析介绍了B/S结构下,Struts框架和JSP的基础上,基于论坛系统的需求特点,介绍了JSP模式的优点,并且实现了论坛系统的基本功能。各章的内容组织如下:第1章介绍了课题研究的背景及实际的应用意义;第2章介绍了B/S结构,JSP技术优越性以及Struts框架技术;第3章分析了系统的开发环境,利用用例建模分析系统的功能需求,并且根据实际情况补充了部分需求,提出了非功能性需求,并描述了系统术语表;第4章对系统进行总体设计,并对服务层、Web服务层、数据访问层、消息处理部分等进行详细设计,对系统中用户注册、用户登陆、权限控制、发表言论等功能进行了详细设计,对介绍了系统中数据库表;第 5 章主要介绍了JavaScript语言的面向对象和事件驱动的实现,展示了Web客户端根据相关协议与服务器交互的流程,并介绍了客户端框架的实现以及定时更新机制的实现。最后是服务器端的具体实现,展示了安全控制机制下用户访问服务器的流程,重点介绍了用户注册、用户登陆、发表贴子、管理员与用户之间进行操作等的处理流程;第6章测试部分主要讲解测试的概念以及本论文所需要的测试第7章结论部分是对整个论文工作的总结以及下一步工作的展望,指出我们工作中有待改进的地方,同时指明了下一步的研究方向。34第2章 相关技术简介2.1 B/S架构的介绍 B/S结构:(Browser/Server,浏览器/服务器模式):是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。2.2 JSP技术的介绍JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。 JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。 2.3 JSP技术的优势与劣势JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点,这是JSP的天然优势。JSP的优势:(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。JSP的劣势:(1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的java文件和class文件,以及对应的版本文件。2.4 Struts 框架2.4.1 Struts框架介绍Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发本章详细讨论struts架构。我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。我们还将介绍struts提供的类如何使得开发工作更加简单,这些类包括: (1)控制程序流程的类。(2)实现和执行程序事务逻辑的类。(3)自定义的标记库使得创建和验证HTML表单更加容易。2.4.2 Struts压缩包内容文件夹jakarta-struts-1.0.2包含两个目录,lib和webapps。在lib目录中有使用struts创建应用程序是所需的文件: 文件描述jdbc2_0-stdext.jar 包含JDBC2.0 Optional Package API类。如果我们要使用struts提供的数据资源,就需要将这个文件拷贝到WEB-INFlib下 Struts.jar 包含struts中所有的java类。同样也需要拷贝到WEB-INFlib下 *.tld 标记库描述器文件,描述了多个struts标记库中的自定义标记。同样要拷贝到WEB-INFlib下 在webapps目录下有如下文件: Web应用程序描述 Struts-blank.war 一个简单的web应用程序 Struts-documentation.war 包含struts站点上所有struts文档 Struts-example.war Struts很多特性的示范 Struts-exercisetaglib.war 主要用于对自定义标签库进行增加而使用的测试页,但也可以示范如何使用struts标记 Struts-template.war 包含struts模板标记的介绍和范例 Struts-upload.war 一个简单的例子,示范如何使用struts框架上传文件2.4.3 Struts体系结构让我们从MVC角度观察struts框架中的组件 框架中三个部分:模型,视窗和控制器。 模型 在struts框架中,模型分为两个部分: 系统的内部状态 (1)可以改变状态的操作(事务逻辑) (2)内部状态通常由一组ActinForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。 大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。 小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。 建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。 视窗 由JSP建立,struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。 控制器 struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。2.4.4 Struts框架中的组件框架中所使用的组件: ActionServlet 控制器 ActionClass 包含事务逻辑 ActionForm 显示模块数据 ActionMapping 帮助控制器将请求映射到操作 ActionForward 用来指示操作转移的对象 ActionError 用来存储和回收错误 Struts标记库 可以减轻开发显示层次的工作 2.5 本章小结本章首先对B/S结构进行了介绍,然后对JSP技术以及JSP优点和缺点的概述;同时介绍了Struts框架的结构、内容、体系等。由本章的分析可知, Struts是一种非常规范的构建网站论坛框架,有利于网站系统的开发和修改,所以本人选用了在Ecplice平台下进行开发,以支持Struts强大的架构和需要的插件。第3章 需求分析需求分析是软件开发流程中重要的一个环节,需求分析的基本任务是根据用户的需求,准确定义要完成的系统的目标,回答系统必须“做什么”的问题。它的主要用途是明确系统需求,是用户和开发人员之间进行讨论的基础,并作为系统设计、实现以及测试的依据。只有准确全面的需求获取与分析才能保证系统设计、系统实现的顺利进行,为后期测试提供必要的支持。在参考了现有的BBS论坛系统的功能,并且考虑到了系统的扩展性和成本的基础上,最后制定了本系统的具体需求。3.1 系统实现目标校园架设论坛,首先需要用户在此论坛注册,用户注册了以后管理员才能进行管理,了解用户的情况和发帖的情况,同时要求游客只能够浏览论坛,不能发表主题或回复,只有在论坛内注册的用户才可以发表主题。管理员具有管理整个论坛的权限,可以管理已注册用户和论坛模块等。为保证物论坛系统能够有效地为企业和网站服务,从功能上必须达到以下目标:(1) 必须实现论坛所有必需功能。作为论坛系统,系统必需能够实现用户注册,用户登陆,发表主题,发表回复等功能,保证论坛实现交流信息技术的功能。(2) 必须保证管理员得到用户信息的准确性和真实性。管理员作为整个系统的调度者,系统的信息必须能够清楚显示给管理员。对于发表的不良信息,管理员应及时删除,保证论坛内部模块的秩序,防止有人恶意损坏论坛的形象。(3) 必须保证管理员能和用户之间通信。对于论坛系统来说,系统的实时管理是十分重要的,管理员可以设立某个模块的版主,来帮助管理员管理其中的内容和调动论坛的活跃度。所以,要保证管理员和用户间通信联系的及时性,提高论坛的知名度与效率。3.2 系统运行环境为了能使学校更好的应用现有软硬件资源,在保障数据信息系统稳定、高效运行的前提下,实现论坛的目的。根据系统需求,设定了BBS论坛系统的运行环境。网络环境:服务器的终端和操作主机都需要连接到Internet。硬件环境:(1) 服务器主机配置:CPU使用Intel P 4 Xeon, 双CPU,内存为2GB,选用2块120GB的SCSI硬盘进行同时读写。(2) 操作主机配置:CPU最低Intel P4 2.0GHz以上,内存1GB以上。(3) 用户端配置:无严格要求,可以登陆Internet访问此网站便可。软件环境:服务器: Windows 2000 服务器版操作系统,Tomcat5.5服务器,MyEcplice5.5开发工具,MySql 5.0数据库。管理员操作端:Windows 98操作系统以上,IE6.0以上。 用户端:Windows 98 操作系统以上,IE6.0以上。3.3 系统的开发环境考虑到系统成本问题,全部采用开源软件和框架来构建此系统。相对来说,开源软件成本低,功能相对简单。服务器端软件环境:Web服务器采用Tomcat5.5,它部署和使用起来都很方便,支持的功能对本系统来说已经足够。论坛的制作方面选用MyEcplice 5.5开发,它是一个全面的多语言环境的编程软件,能够实现实用多种语言同时更好的编写程序。数据库服务器采用的PowerDesinger完成建模工作,并将其导入MySql中,为了节省本系统的资源,所以采用了小型数据库MySql。在实际应用中,企业可以根据自己的需要更换其他的的数据库管理。开发工具与支持环境:系统开发采用MyEclipse。考虑到系统的扩展性和实体类的独立性,采用Struts作为J2EE实现的服务器端容器,数据库访问则采用JDBC组件实现。这些开源软件的采用,降低了系统开发难度,提高了软件的可复用性。3.4 功能性需求描述在面向对象的系统分析中,获取功能需求的最常用的技术就是用例建模技术。它能够直观地向客户展示系统的功能,方便技术人员准确地获取需求。在项目开发的前期,它帮助开发人员理解系统的需求而不考虑具体的实现方法。用例,表示系统的一种行为或者某个功能。它是在特定条件下,为了达到某种目的,系统和用户之间进行交互的一个序列。用例模型由参与者和用例组成。参与者是与系统进行交互的外部实体,可能是某个人或者是某个事物。图3.1显示的就是本系统的业务流程图。本系统中,参与者有两个,管理员和普通用户,相关的用例描述如下。图 3.1 论坛系统流程图3.4.1 用户注册用例标识:1.0参与者: 浏览本论坛的游客简要说明:游客在浏览本论坛系统的时候可以注册成为本论坛的用户。基本事件流:(1) 先单击论坛右上方“注册用户”导航按钮,进入注册界面。(2) 客进入注册界面填写个人的基本信息,包括用户名、密码、真实姓名、性别、OICQ、头像等信息。(3) 提交注册信息,必填项目必须填写,如果用户名重复,两次密码输入不同,则系统显示请从新填写。(4)注册成功,页面自动跳转回论坛首页。3.4.2 浏览论坛用例标识:2.0参与者:管理员,注册用户,游客简要说明:此用例中操作者为管理员,注册用户,游客均可,系统以列表的方式显示论坛的当前状态以及其他基本信息。基本事件流:(1) 凡登陆本论坛者,都可以可以随意浏览本论坛基本信息。(2) 管理论坛的信息只有管理员登陆后可见。(3) 论坛模块信息只有注册用户或管理员可见。3.4.3 发表回复用例标识:3.0参与者:管理员,注册用户简要说明:浏览本站的用户可以在自己感兴趣的论坛区中查看主题贴子并发表回复。基本事件流:(1) 登陆网站首页,在首页的右上方的登陆框内登陆用户的用户名和密码。(2) 登陆成功后,可选择相关的论坛模块,点击即可进入。(3) 进入相应的论坛模块后,可以查看已发的主题贴子并进行回复。3.4.4 发表主题用例标识:4.0参与者: 管理员,注册用户简要说明:管理人员通过输入要查询项和查询条件,来完成对系统中某类信息的查询,结果采用列表的方式显示。基本事件流:(1) 登陆网站首页,在首页的右上方的登陆框内登陆用户的用户名和密码。(2) 登陆成功后,可选择相关的论坛模块,点击即可进入。(3) 进入相应的论坛模块后,点击论坛右上角的发布主题选项即可发布新主题。3.4.5 用户管理用例标识:5.0参与者:管理员简要说明:管理员可以对已经在本论坛的注册的用户进行管理,根据不同的需求和形式,进行不同的管理。基本事件流:(1) 点击网页右上方的的“管理员登陆”导航按钮,然后进如管理员管理页面。(2) 进入管理员操作界面以后,单击左侧的“用户管理”按钮。(3) 可以根据用户对论坛的贡献进行提升为管理员或删除。3.4.6 主题管理用例标识:6.0参与者:管理员简要说明:管理员可以通过管理员登陆系统进入主题管理系统,查看并管理用户发表的主题。基本事件流:(1)点击网页右上方的的“管理员登陆”导航按钮,然后进入管理员管理页面。 (2 进入管理员操作界面以后,单击左侧的“主题管理”按钮。(3) 可对不文明的主题或恶意宣传的主题进行删除。3.4.7 栏目管理用例标识:7.0参与者:管理员简要说明:管理员可以对某个栏目做出杰出贡献者进行任命,将其设为版主。基本事件流:(1) 点击网页右上方的的“管理员登陆”导航按钮,然后进入管理员管理页面。 (2) 进入管理员操作界面以后,单击左侧的“栏目管理”按钮。(3) 进入栏目管理页面后,可以将用户设置为某个栏目模块的版主,其名字会显示在论坛首页栏目名字的下方。3.4.8 回复管理用例标识:8.0参与者:管理员简要说明:管理员可以通过管理员登陆系统进入主题管理系统,查看并管理用户发表的主题。基本事件流:(1)点击网页右上方的的“管理员登陆”导航按钮,然后进入管理员管理页面。 (2 进入管理员操作界面以后,单击左侧的“回复管理”按钮。(3) 可对不文明的回复或恶意宣攻击他人,传播不良文化等的回复进行删除。3.4.9 用户注销用例标识:9.0参与者:注册用户,管理员简要说明:注册用户和管理员在结束操作以后可以点击“注销”按钮退出登录。基本事件流:(1) 用户或管理员已经登陆本论坛系统。(2) 确定执行的所有操作均已完成。(3) 点击论坛首页左上方的“注销”按钮,安全退出。3.5 文件夹组织结构在开发系统前,将可能用到的文件夹创建出来,可以方便以后的开发工作,还可以规范论坛的整体架构,BBS系统的文件夹组织结构如图3.2所示。图 3.2 论坛组织文件夹结构图3.6 非功能性需求描述非功能性需求在整个系统中占有非常重要的位置,对系统的非功能性需求的满足是系统成功的基础,下面列出本系统的非功能性需求:(1) 系统能够长时间的持续工作。对于企业应用级的系统来说,系统的稳定性与正确性一样重要。考虑到本系统的实际情况,服务器端必须能够在24*7小时内不间断地稳定运行。(2) 客户端信息更新更新等待时间不能大于5秒。(3) 系统要采用B/S架构进行构建。考虑到B/S架构部署以及升级的简单化,所以要求采用B/S架构进行构建。3.7 本章小结本章首先介绍了系统的实现目标、运行环境和开发环境。然后通过用例分析的方式获取和分析了系统的功能性需求,对需求进行了补充,提出了系统的非功能性需求。从而对系统的整体需求有了完整的了解。从本章的需求分析中可以得出,系统的功能性需求相对来说比较易于实现,而非功能性需求比较严格。对于非功能性需求影响最大的就是系统的架构,所以在设计和实现系统时,要在对系统的架构给予充分重视的前提下,实现功能性需求。第4章 系统设计4.1 系统设计原则(一)低成本。随着技术的进步和系统复杂性的增加,论坛成本在整个系统中所占的比重越来越大,企业应用中已经达到80%左右拥有属于自己的论坛,而且有继续增加的趋势。为了降低系统的成本,系统中各个模块都采用开源项目中的组件完成。它们不仅能够提供比较完善的功能,而且还能根据系统需求进行适当扩展。(二) 规范性。从使用周期上来考虑,论坛系统维护阶段在软件生命周期或生存期中占较大比重,有的可达系统生存周期的50-70%。所以需要系统在设计的过程中积极遵循各种规范,保证后期维护和开发人员能够快速整理和修改。(三) 易扩展。系统的设计直接决定可扩展性。可扩展性是软件工程追求的目标,能够大大提高系统的复用程度,较低开发成本。本系统中采用标准的Struts 框架作为服务器端的容器,其中的提供了可扩展的Action类,用户处理特定的HTTP请求。另外系统采用分层机制设计,建立专门的数据访问层、服务层、业务逻辑层等,采用设计模式中的思想优化设计,从而最大程度上提高系统可扩展性。4.2 数据库设计数据是系统的基础,数据库设计关系到系统开发的成败,所以数据库设计这一环节在系统开发中显得尤为重要。数据库设计就像一座建筑的地基一样,如果设计不合理,将会影响到整个系统开发的全过程,甚至会给后期维护带来极大的不便。4.2.1 数据库分析本系统采用MySql数据库,相对于Oracle等大型数据库来讲,MySql数据库更适用于中小型系统,其存取数据的方便、快捷为系统开发带来了便利。由于本系统数据量并不算庞大,为了减少工程成本,所以选择使用MySql数据库。4.2.2 数据库概念设计根据以上对系统所做的需求分析、流程设计及功能结构的确定,每个功能模块可以抽象出一个或多个实体对象,例如用户、论坛、主题、回复主题实体对象等。这些实体对象彼此互相联系,并且最重将被创建成数据表结构。(1) 用户实体对象用户实体包括用户编号、用户名、用户签名、用户头像、用户级别等用户相关属性。用户编号是识别用户实体的唯一编号,也就是数据表的主键,它的数据类型为int型,并且具有自增特性;用户级别属性是标明用户在本系统中的功能管线;其他属性都是描述此用户相关信息的属性,例如用户头像、用户联系地址、用户个人主业等。用户实体E-R图如图4.1所示。图4.1 用户实体E-R图(2) 论坛实体对象论坛实体对象包括论坛编号、论坛名称、版主、创建时间等相关属性。论坛实体对象中的论坛编号属性与用户实体对象中的用户编号属性类型相同,都为int型,并具有自增特性;其他属性都是描述此论坛的相关信息。论坛实体E-R图如图4.2所示。图4.2 论坛实体E-R图(3) 主题实体对象主题实体包括主题编号、主题标题、主题内容、主题作者、发表时间、论坛编号、论坛名称、人气等相关属性。主题编号属性类型为int型,并且具有自增特性;论坛编号属性标明此主题发表在哪个论坛中;由于在使用主题实体对象时,频繁用到论坛实体对象中的论坛名称属性,所以在这里将论坛名称属性定义到主题实体中;人气属性用于标明此主题被访问过的次数;其他属性都是描述主题实体对象的相关信息。主题实体E-R图如图4.3所示。图4.3 主题实体E-R图(4) 回复主题实体对象回复主题实体对象包括回复主题编号、回复主题标题、回复主题内容、回复主题作者、回复主题时间、主题编号、主题名称、回复作者心情等属性。除了主题编号与主题名称属性之外,其余属性都是描述回复主题实体对象相关信息。回复主题实体E-R图如图4.4所示。图4.4 回复主题实体E-R图4.2.3 PowerDesigner数据库建模在数据库概念设计中已经分析了用户、论坛、主题、回复主题等主要数据库实体对象,这些实体对象最终将被定义为数据表,形成整体的数据结构。在这里,本人使用PowerDesigner软件完成数据库建模工作。建模结构如图4.5所示。图4.5 数据库模型图图9.5中的数据库模型描述了整个BBS系统的数据结构,包括用户、论坛、主题、主题回复等实体,这4个实体之间没有直接关联关系,这就意味着开发过程比较简单。4.2.4 创建数据库通过PowerDesigner建模后,可以使用此软件生成相应的数据库脚本,本人将本系统数据库脚本命名为db_bbs.sql,然后使用脚本在MySql中创建数据库。具体步骤如下:(1) 选择“开始”/“程序”/MySQL/MySQL Server 5.0/MySQL Command Line Client命令,弹出窗口,输入root用户密码,窗口提示符变为“mysql>”,这表示已经正确连接了MySQL数据库。(2) 在提示符“mysql>”后输入如下命令:use db_bbs;然后按回车键,此时使用的数据库为db_bbs。(3) 将db_bbs.sql放入MySQL根目录中的bin路径下,在提示符“mysql>”后输入如下命令:source db_bbs.sql;按回车键,这样数据库就建立完成。4.3 用户发布主题模块设计4.3.1 发布主题概述发布主题模块包括发布新主题与回复主题两个功能。发布新主题即用户发表一篇新的文章,回复主题即用户回复已发表的文章,两者虽然功能不同,但都提交到相同的Action控制器。发布主题页面如图4.6所示。图4.6 发表主题页面4.3.2 发布主题技术分析当在导航栏中单击右侧的“发布主题”连接时,将发出newtopic.do请求,进入发表主题页面,此时实现的是“发布新主题”功能。另外,“发布新主题”功能只提供给登录用户,普通用户没有“发布新主题”的权限。当用户在主题浏览页面单击“回复”链接时,同样将发出newtopic.do请求,为了在Action控制器中区别两种功能,本人为回复请求加上一个参数type,系统自动根据struts-config.xml配置信息将参数type值提交到Action控制器中,然后根据type的值在控制器中调用相应的业务逻辑处理。当用户输入主题相关信息后,发送newAticle.do请求,在指定控制器中调用相应的业务逻辑处理,将用户发表的文章插入数据库。4.4 本章小结本章介绍了论坛系统设计的过程,根据系统设计所提出的三个原则对系统进行总体设计。剖析了一个较大型的web项目如何运用Struts框架来构造。BBS系统是网络应用系统,本章从分析开始,详细的介绍了系统的各个部分的设计理念和主要功能需要。考虑到论坛系统的可扩展性,大部分