《JAVA小型论坛系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《JAVA小型论坛系统的设计与实现.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JAVA小型论坛系统的设计与实现姓名:刘伟学号:007 专业:计算机应用与技术摘 要:为了方便信息的交流,在结合动态服务网页(JSP)和SQL2000 技术之下开发了这个界面友好的小型论坛系统。论坛使用动态服务网页(JSP)技术建设论坛的骨干框架,使用SQL2000制作系统的数据库,利用了Struts、Spring、Hibernate三大框架技术的部分知识点,还结合使用了AJAX技术,通过这些实现了一个功能相对齐全的论坛系统。该论坛为网友们提供了一个交流的平台,在这里注册用户可以自由地发表自己的观点和对论坛的主题帖子发表意见,还可以及时的解决网友提出的问题,获取对自己有用的知识。该论坛还有一些
2、特殊的功能,强大的搜索功能等。关键词:动态服务网页;论坛;SQL2000;AJAX;Small BBS Forum SystemAbstract:In order to exchange the information expediently, the small forum is developed under the technologies of JSP and SQL2000. The main frames of the forum system is built by the technologies of JSP and SQL2000 database, part of the
3、 three instructions of Struts, Spring, Hibernate and AJAX, All of those above is to provide a relatively complete functions of the forum system.The forum system provides a platform of communication, herein, the users who have registered ahead can express their ideas freely and give some advice about
4、 the subjects, moreover, you can solve the questions asked by online friends and obtain useful knowledge for yourself from the forum. By the way, the some other especial functions is also added, such as the powerful search engineering. Keywords: Java Server Pages; BBS; SQL2000; AJAX;目 录1前 言12系统技术及运行
5、环境32.1JSP技术简介32.2JAVABEAN技术简介32.3其它的一些技术32.4运行环境33系统需求分析说明53.1系统介绍53.2功能需求54总体设计64.1总体结构和模块设计64.2处理流程65数据库设计85.1数据库结构属性图85.2数据库表格设计96系统详细设计116.1前台页面126.2后台页面176.3系统设计主要代码及配置文件207测试267.1测试方法267.2测试范围267.3测试报告268总结与展望27参考文献28致 谢291 前 言进入21世纪,计算机技术迅速向着网络化的、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息
6、(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。另一种,也是本毕业设计所采用的,是称为浏览器服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。
7、本论文就是基于B/S结构实现的。论坛也常被简称为BBS(Bulletin Board System)1。1978年在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago(Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系统2。BBS发展至今,目前世界上业余的BBS网络除了FidoNet(惠多网)以外,几个较具知名度的还有EggNet、AlterNet和RBBS-Net等等。由于这些网络和FidoNet之间的信息交流不成问题,这就实现了所谓的跨网。大约是从1991年开始,国内开始了第一个BBS站。经过长时间的发展,直到1995
8、年,随着计算机及其外设的大幅降价,BBS才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的BBS站,按其性质划分,可以分为两种:一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。由于使用商业BBS站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余BBS站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络China FidoNet(中国惠多网)。于是,各地的用户都可以通过本地的业余BBS站与远在异地的网友互通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余B
9、BS站拥有这种优势,所以使用者都更乐意加入。这里“业余”2字,并不是代表这种类型的BBS站的服务和技术水平是业余的,而是指这类BBS站的性质。一般BBS站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平3。BBS是互联网一种人与人之间交互的必备工具,特别是做网站必备。以前我们一直用留言本形式,但是随着您的网站的大规模化,越来越多的迫切需要一种可以易于维护和易于交流的平台,那就要用BBS。BBS可以通过WEB浏览器访问,并且实现上传文件等诸多功能。网民们便逐步开始接受这种使用方便快捷、功能日渐强大的系统。在它上面网民们
10、可以张贴和发布各种各样的信息,讨论各式话题 。随着中国网络的普及和计算机及其外设的大幅度降价,Internet这个概念逐渐深入人心。中国网民的数量呈几何级数量增长,BBS的普及程度也直追Email。每个网站几乎都拥有自己的BBS或者BBS链接,BBS社区提供给用户的服务是全面而且非常友好的,用户在社区中可以根据自己的喜好设置不同的显示风格,根据自己的需求定制各种服务4。通过论坛更加快捷的了解企业员工的信息,而建立会员服务的基础是建系论坛管理系统!通过应用该系统可以实现用户与用户间的交流、企业与企业间的信息交互,利用网络经济而又快捷地与外界进行各种信息沟通,取得更有用的信息资源。论坛系统服务已经
11、是互联网站一种极为常见的互动交流服务。论坛可以向网友提供开放性的分类专题讨论区服务,可以在此发表自己的某些观感、交流某些技术、经验乃至人生的感悟与忧欢,亦可以做为网友们之间的交流渠道,网站亦可在此回答网友们提出的问题或发布某些消息。通过论坛的方式,增强个人与个人,团体与团体,个人与团体之间的交流联系,在Internet上实现信息的传递,提高办事效率5。因此论坛建设在Internet应用上的地位显而易见,它已成为现代人沟通和获取信息的重要组成部分,从而倍受人们的重视。本文利用JSP和SQL Server 2000做一个在线论坛系统。该系统以Internet为平台,前台可使任何人注册、登陆在论坛上
12、进行发贴及讨论,版主可以进行一部分管理。而管理员也可以在后台进行相关的管理。2 系统技术及运行环境2.1 JSP技术简介JSP是服务器端的脚本语言,是以SERVLET为基础开发而成的动态网页生成技术,它的底层实现是JAVA SERVLET。JSP(JAVA SERVER PAGES)由HTML代码和潜入其中的JAVA代码所组成6。服务器在页面被客户端请求以后对这些代码进行处理,然后将生产的HTML页面返回客户端的浏览器JSP的特点是面向对象、 跨平台、 和SERVLET一样稳定、 可以使用SERVLET提供的API,同时克服了SERVLET的缺点。在使用JSP时一般和JAVABEANS结合使用
13、,从而将界面表现和业务逻辑分离7。2.2 JAVABEAN技术简介JAVABEAN是基于JAVA的组建模型,有点类似于MICROSOFT的COM组建。在JAVA平台中,可以无限扩充JAVA程序的功能,通过JAVABEAN的组合可以快速生产新的应用程序。对于程序员来说,最好的一点就是JAVABEAN可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。JAVABEAN 通过JAVA虚拟机(JAVA VIRTUAL MACHINE)执行,运行JAVABEAN最小的需求是JDK1.1或者以上的版本。JAVABEAN传统的应用在于可视化的领域,如AWT下的应用。自从JSP诞生后,JAVA
14、BEAN更多的应用在了非可视化领域,在服务器端应用方面表现出了越来越强的生命力8。2.3 其它的一些技术本系统还使用了一些其它的技术,如Struts9,Hibernate10,Spring11,AJAX等。这些都会在后面的代码处作相应的介绍。2.4 运行环境为了保证BBS论坛管理系统运行的高效性和可靠性,服务器应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求如下:软件环境:客户端: Windows95/98/2000/XP,Internet Explorer(IE6.0及其以上版本)等。服务器端:Windows
15、 NT/Windows2000,Tomcat 5.012,JDK 1.5及其以上版本,IE6.0及其以上版本等;数据库:采用SQL2000,运行于服务器端。硬件环境:服务器 CPU:PIII 500以上 ,内存:512M以上。客户机 CPU:P200MMX以上,内存:32M以上。3 系统需求分析说明3.1 系统介绍本系统是基于B/S结构的一个小型论坛,主要基于Windows平台,通过这个论坛,用户之间可以实现互动交流。3.2 功能需求通过对网上的一些著名论坛的认识,该论坛至少应该实现以下功能:(1) 注册管理:能够对用户名,密码的简单验证,能够防止利用页面刷新重复注册,已经存在的用户名称不能重
16、复注册。(2) 浏览帖子:可以根据作者或内容等为关键字搜索帖子,分论坛版块显示帖子,显示帖子详情,浏览帖子时不要求用户登录,但回复帖子前用户必须登录。(3) 发表及回复帖子:只有登录用户才可以发表和回复帖子,并且对帖子的字数有限制。(4) 用户个人信息管理:登陆用户可以编辑注册后的个人资料,如修改密码等,但是不可以修改用户名称。也可以对自己发表的帖子进行操作:如修改,删除。(5) 回复管理:各论坛版块的版主可以对自己管理的版块的帖子的回复的帖子进行管理,可以屏蔽回复。(6) 论坛版块管理:只有管理员有该权限,管理员可以添加,删除版块,也可以修改版块资料,如版块名称,上级版块,版主。(7) 用户
17、管理:只有管理员有该权限,管理员可以禁用,启用用户,进行用户密码重置。(8) 公告管理:只有管理员有该权限,管理员可以添加,删除公告。(9) 帖子管理:各论坛版块的版主可以对自己管理的版块的帖子进行管理,可以屏蔽和删除帖子。4 总体设计本系统采用B/S模式设计,方便系统的维护和使用。采取MVC设计模式与多层架构的基于J2EE平台的设计13,使系统拥有良好的扩展性,在满足当前使用需求同时还兼顾系统以后可能的功能扩充。系统分成几个相对独立的模块,但这些模块都进行集中式管理。4.1 总体结构和模块设计该系统可分为前台和后台两个部分,前台是提供给一般用户和版主使用的,后台是提供给管理员进行一些系统维护
18、的。功能结构图如下:小型BBS论坛管理系统前台功能后台功能浏览搜索帖子用户登陆注册发表回复帖子个人资料管理帖子管理用户管理论坛版块管理公告管理图3.1 系统功能结构图4.2 处理流程对于本系统的使用者来说,可以分为以下几类:未注册的用户,已注册的用户。已注册的用户又可以分为一般用户、版主、管理员三类。根据用户角色的不同,用户拥有的权限也会不同。根据这个来分析该系统的业务流程。系统的业务流程如图3.2所示:图3.2 业务流程图5 数据库设计在建设网站系统之前,必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关
19、键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,分析该实体有哪些属性,对应有些什么字段,以及各实体之间的联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心14。从实际出发,经过仔细地设计,得到各表的设计如下所示。5.1 数据库结构属性图图4.1 数据库结构属性图5.2 数据库表格设计表4.1: UserInfo 用户信息表列名说明类型备注uid主键Int(4)自增username用户名称Varchar(20)Not nullpassword
20、密码Varchar(20)Not nullhead头像Varchar(20)Not nullsign个人签名Varchar(200)Not nullroleid角色Int(4)Not nullactive状态Int(4)Not null表4.2: Topic 帖子表列名说明类型备注tid主键Int(4)自增title帖子主题Varchar(50)Not nullcontent帖子内容Varchar(1000)Not nullauthorid作者Int(4)Not nulltime发表时间datetimeNot nullsortid所属的论坛版块Int(4)Not null表4.3: Reply
21、 回复表列名说明类型备注id主键Int(4)自增title帖子主题Varchar(50)Not nullcontent帖子内容Varchar(1000)Not nullauthorid作者Int(4)Not nulltime发表时间datetimeNot nulltopicid回复的帖子编号Int(4)Not null表4.4: Sort 论坛版块分类表列名说明类型备注sid主键Int(4)自增parentid上级版块Int(4)Not nullsortname版块名称Varchar(50)Not nullmaster版主名称Varchar(20)允许为null表4.5: Role 角色表列名
22、说明类型备注rid主键Int(4)自增description角色描述Varchar(10)Not null表4.6: Notice 公告表列名说明类型备注nid主键Int(4)自增content公告内容Varchar(100)Not null6 系统详细设计前台和后台页面设计采用的技术是JSP。之所以选择它是因为JSP技术具有下面的特点:1)Write Once Run AnywhereJSP技术继承了JAVA先天性的先进概念“Write Once Run Anywhere”这种概念正越来越深远的影响着互连网行业的交互式、WEB设计的理念。JSP Pages 可以非常容易的开平台跨WEB服务器
23、软件来是设计和开放源代码。2)支持多种动态网页格式目前对使用JSP技术设计出来的网页应该采取什么样的格式还没有一个明确的标准。一般来说JSP技术即可以支持HTML/DHTML的传统浏览器文件格式,又可以支持应用与无线通讯设备例如移动电话、PDA等设备进行网页浏览器的VML文件格式,还可以支持其它一些B2B应用的XML格式。与以往的其它WEB应用技术相比较JSP技术有它很鲜明的特点。3)JSP 标签可扩充性尽管JSP与ASP都使用标签与脚本技术来制造动态WEB网页,但是JSP技术能够使开发者扩展JSP标签,使得应用JSP的开发者能定制标签库所以网页制作者可以充分利用与XML兼容的标签技术,大大减
24、少了对脚本语言的依赖。由于指定标签库技术使得网页制作者降低了制作网页和想多个网页扩充关键功能的复杂程度15。4)JSP跨平台的可重用性JSP的开发人员在开发过程中一直关注可重用性,JSP足见、企业JavaBean或制定的标签都是跨平台可重用的。企业JavaBean可以访问传统的数据库并能并能已分布式系统模式工作于UNIX和WINDOWS平台,JSP标签可扩充功能为开发人员提供简便的与XML兼容的接口,即共享网页的打包功能使其完全的工业标准化。这种基于组建的模式能够有效的提高应用程序的开发效率。因为这种模式能够使开发人员利用快捷的子组建快速创建模板应用程序。然后再整和一些附加功能将其打包成一个J
25、AVABEAN组建。5)易于维护性基于JSP技术的应用程序比基于ASP的应用程序更易于维护和管理。脚本语言都很好服务于小的应用程序但不能适宜大型的复杂的应用程序,因为JAVA是结构化的,它比较比较容易创建和维护庞大的组建化的应用程序。6.1 前台页面6.1.1 登录进入论坛首页页面图5.1 论坛登录页面在此页面中,用户如果点击“浏览进入”这个超链接,即以相当于游客的身份进入论坛,进入的是论坛的首页(图5.2所示),那么就只拥有浏览和搜索帖子的权限。如果用户输入了正确的用户名称和密码,就会以用户的身份进入论坛的首页。该用户就可以拥有更多的权限,可以浏览和搜索帖子,修改个人资料,删除和修改自己发表
26、的主题帖子,发表和回复帖子。如果用户输入了不正确的信息,则系统阻止进入论坛的首页,还是会跳转到该登录页面。如果用户点击了“注册”这个超链接,则会进入注册页面(图5.3所示)。6.1.2 论坛首页图5.2 论坛首页在该页面中,显示了很多信息。主要是各个版块的详细信息,包括版块的名称,版主,发表于该版块下的主题帖子总数,以及最新发表的帖子的信息。若有发表的帖子,则显示该帖子的主题,作者,和发表时间,并且提供了帖子主题的超链接,点击后会进入显示该帖子的详细信息页面。若无发表的帖子,则显示暂无。该页面上还显示了公告的信息,即公告栏显示的内容。页面上还提供了搜索帖子的功能,可以根据作者名称来精确查找和根
27、据帖子内容来模糊查找。如果用户是经过登录验证后进入该页面的,页面会提供“个人中心”的超链接,点击此链接会进入个人信息中心页面(如图5.6所示)。如果用户是通过浏览进入该页面的,则不会提供该超链接。6.1.3 注册页面图5.3 注册页面用户可以在该页面中输入注册资料,包括用户名,密码,个性签名和头像。用户名,密码,个性签名都是必填的,头像是默认选择第一个,用户也可以重新选择。在用户提交之前,对所填的信息都作了验证,包括用户名非空并且不可重复,密码非空,密码长度必须大于或等于4,两次输入的密码必须一致,个性签名非空,且长度小于50。在对用户名称的唯一性验证时,使用了AJAX技术,当用户输入完用户名
28、,该文本框失去焦点时,会检查数据库中是否存在该用户名,如果不存在,则在文本框后用蓝色字体显示“Ok,你可以用这个名称!”,如果存在,则在文本框后用红色字体显示“No,这个名称已占用!”。提交成功后,跳转到登录页面。在这里简单介绍一下AJAX技术。AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它使浏览器可以为用户提供更为自然的浏览体验。在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步。Ajax提供与服务器异步通信的能力,从而使用
29、户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的。6.1.4 发表帖子图5.4 发表页面用户可以在该页面中填写帖子的资料,包括标题和内容。提交之前也作了验证:标题非空且长度小于50,帖子内容非空且长度小于2000。为提示用户控制输入,通过JavaScript实现了动态显示用户输入的字符数目。为避免重复提交,提供
30、了验证码,只有输入了正确的验证码后才会提交。6.1.5 显示帖子及回复图5.5 显示贴子与回复页面在该页面中,显示了帖子的详细信息和回复的帖子的详细信息。并且实现了分页功能,每页显示5个回复帖子。只有对登录用户才显示“回复帖子”和“发表话题”两个按钮,以及回复帖子的表格的显示。对于没有登录的用户,则不会显示。如果登录的用户的身份是版主,而该帖子又是位于该用户管理的论坛版块下,则会在主题帖子后提供“屏蔽此帖”和“删除”两个超链接。分别实现屏蔽帖子和删除帖子的功能。另外在回复的帖子后提供“屏蔽此回复”超链接,实现对回复的帖子的屏蔽操作。6.1.6 显示个人中心页面图5.6 个人中心页面在该页面中,
31、显示了用户的个人资料和发表的帖子的信息。当用户点击“编辑个人资料”的超链接后,会进入修该个人资料的页面,实现对个人信息的修改。另外页面上分页显示了用户发表的主题帖子,用户可以这些帖子进行修改和删除操作。6.2 后台页面用户要进入后台管理页面,必须先进入后台管理的登录页面,使用了Filter来实现过滤。只有登录成功后,才能进入管理页面。6.2.1 后台登录页面图5.7 后台页面登录成功后跳转到后台管理页面,登录失败后还是跳转到本页面。6.2.2 后台管理页面图5.8 后台管理页面进入到后台管理后,首先显示的是如上图5.8所示的页面。6.2.3 用户管理页面图5.9 用户管理页面点击后台管理页面的
32、左边导航栏的“用户详细信息”超链接即可进入到该页面。该页面分页显示了用户的部分资料,包括用户名,用户角色,是否禁用。还对每个用户提供了“启用”,“禁用”,“密码重置”操作按钮。管理员可以进行与之相对应的操作。这些操作是通过AJAX实现的。6.2.4 公告管理页面图5.10 公告管理页面点击后台管理页面的左边导航栏的“公告详细信息”超链接即可进入到该页面。该页面分页显示了公告的详细信息,包括公共编号,公共内容。管理员可以添加公告,删除公告。点击页面上的添加图标即可进入到添加公告页面。点击某个公告后的删除图标即可删除选定的某个公告。6.2.5 论坛版块管理页面图5.11 论坛管理页面点击后台管理页
33、面的左边导航栏的“论坛详细信息”超链接即可进入到该页面。该页面分页显示了各个论坛板块的详细信息,包括论坛版块名称,上级版块名称,版主。管理员可以对论坛版块进行添加,修改,删除操作。点击页面上的添加图标即可进入到添加论坛版块的页面,完成添加功能。点击某个版块后面的修改图标即可进入修改版块信息的页面,在修改页面中可以修改该版块的名称,上级版块,版主。修改成功后跳转到显示所有论坛版块的页面。点击某个版块后面的删除图标即可删除选中的论坛版块,如果删除成功就跳转到显示所有论坛版块的页面,如果删除失败就跳转到显示删除失败信息的页面。6.3 系统设计主要代码及配置文件6.3.1 分页的JavaBean系统中
34、的大部分JSP页面需要使用分页技术,因此使用一个JavaBean来专门完成分页的功能。以下是此类的关键代码:public class PageModel /所有的记录数private int totalRecords;/查询的结果集private List list;/第几页private int pageNo;/每页多少条数据private int pageSize;/提供各成员属性的get,set方法public int getTotalPages() if (totalRecords = 0)return 1;return (totalRecords + pageSize -1)/pag
35、eSize;6.3.2 生成验证码的代码tryBufferedImage bf=new BufferedImage(70,25,BufferedImage.TYPE_INT_RGB);Graphics2D g2=bf.createGraphics();g2.setPaint(new Color(0,0,255);g2.fillRect(0,0,70,25);g2.setPaint(new Color(255,255,255);String str=request.getParameter(num);session.setAttribute(num,str);g2.setFont(new Fon
36、t(Arial,Font.BOLD,24);g2.drawString(str,7,20);for(int i=0;i10;i+)int r=(int)(Math.random()*255);int g=(int)(Math.random()*255);int b=(int)(Math.random()*255);g2.setPaint(new Color(r,g,b);int x1=(int)(Math.random()*80);int y1=(int)(Math.random()*30);int x2=(int)(Math.random()*80);int y2=(int)(Math.ra
37、ndom()*30);g2.drawLine(x1,y1,x2,y2);g2.dispose();ImageIO.write(bf,jpg,response.getOutputStream();catch(Exception e)System.out.println(e);6.3.3 系统的配置文件1) Web.xml主要配置的是Tomcat启动时要加载的配置文件。其中有Struts的配置文件Struts-config.xml,Spring的配置文件即与applicationContext-*.xml匹配的文件,另外还配置了Spring中Filter设置了字符集。此外还配置了与AJAX技术相关
38、的DWR的详细配置信息。2) Struts-config.xml对于本系统为什么选择使用Struts技术,下面列举的这些理由是显而易见的:首先,它是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,经受了实战的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架显示出很好的融合性16。该系统的Struts
39、的配置文件中主要内容是ActionForm,DispatchAction的详细信息,以及各页面的跳转路径的控制信息。3) Hibernate.cfg.xml本系统中对数据库操作的DAO是通过Hibernate来实现的,该层的事务处理都交给Hibernate来处理,下面简单的来介绍一下Hibernate。Hibernate是一种Java语言下的对象关系映射解决方案。它用来把对象模型表示的对象映射到基于SQL 的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate 不仅管理Java 类到数据库表的映射(包括从Java数据类型到SQL数据类型
40、的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。4) 与Spring有关的三个配置文件在本系统中,利用Spring的依赖注入机制来实现了DAO对象
41、的依赖注入,这样一来不用自己来创建对象实例。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。以下是与系统有关的三个Spring的配置文件(1) applicationContext-common.xml在该文件中定义了哪些类的哪些方法参与事务,配置了SessionFactory,事务管理器,事务的传播特性。 (2) applicationContext-be
42、ans.xml在该配置文件中配置了各个模块的DAO层的详细信息。(3) applicationContext-actions.xml在该配置文件中配置了各个DispatchAction中DAO对象的注入信息。6.3.4 注册时的验证代码(用到了AJAX技术)此处是通过DWR框架来实现的,页面中的关键代码如下:String.prototype.trim = function() / 用正则表达式将前后空格,用空字符串替代 return this.replace(/(s*)|(s*$)/g,);function checkname()var uname = document.all.usernam
43、e.value.trim();if(uname=)window.alert(用户名不能为空!);return false;checkMethod.checkUsername(uname,callback);function callback(result)if(result=canuse)document.getElementById(user_msg).innerHTML = Ok,你可以用这个名称!;elsedocument.getElementById(user_msg).innerHTML = No,这个名称已占用!;document.getElementById(username).
44、focus();return true;7 测试7.1 测试方法由于本系统的设计人员和测试人员都是本人,很了解系统的内部结构和处理过程,所以测试方式采用的是动态测试方法中的白盒测试。7.2 测试范围用户的登录;帖子的添加、删除、修改、查询;用户的个人信息编辑;管理员对用户、论坛版块、公告的管理。7.3 测试报告测试项目测试目的测试结果原因解决情况用户登录确保系统的安全性不敢肯定系统一定安全存在一些其它的因素仍在解决帖子的添加确保帖子准确无误的添加添加不成功有些属性没有进行正确性检查已解决帖子的删除确保帖子信息都删除程序运行正常帖子的修改确保帖子信息准确的修改程序运行正常帖子的查询确保查出要求的信息没有达到要求SQL语句有误已解决个人信息编辑确保个人信息成功的修改程序运行正常用户管理确保对用户的管理都能操作成功程序运行正常论坛管理确保对论坛的管理都能操作成功程序运行正常公告管理确保对公告的管理都能操作成功程序运行正常8 总结与展望在计算机网络飞速发展的今天,BBS已经成为人们网上交流的重要平台,因此对BBS论坛的研究是十分必要的。设计和开发了一个最基本的基于WEB的BBS系统,可扩展性很大,科学的开发过程也极有利于系统的扩充与扩展。系统现在采用的是SQL2000数据库,视需要可以移植到SQL2005或者其它大中型数据库系统环境下,只需改动少