论坛可以为网友提供开放性的分类讨论区专题服务,网友们可以在此发表自己的观感,交流某些技术,经验乃至人生的感悟与忧欢,亦可以作为用户和商家交流的渠道,商家也可以在此回答用户提出的问题或发布某些消息。
后台供管理员管理论坛之用,包括版块设置和用户设置两个子模块。
主要参考资料:[1]回相.论坛论坛[J].网络与信息,2007,3:10—12.[2]姜力、高群主编.SQLServer数据库设计与管理[M].北京大学出版社,2006年.[3]乔普拉(美)著.JSP高级程序设计[M].人民邮电出版社,2005年.完成期限:3月6日——5月1日指导教师签名:课程负责人签名:摘要为了方便信息的交流,在结合动态服务网页(JSP)和SQL2000技术之下开发了这个界面友好的小型论坛系统。
论坛使用动态服务网页(JSP)技术建设论坛的骨干框架,使用SQL2000制作系统的数据库,利用了Struts、Spring、Hibernate三大框架技术的部分知识点,还结合使用了AJAX技术,通过这些实现了一个功能相对齐全的论坛系统。
该论坛为网友们提供了一个交流的平台,在这里注册用户可以自由地发表自己的观点和对论坛的主题帖子发表意见,还可以及时的解决网友提出的问题,获取对自己有用的知识。
该论坛还有一些特殊的功能,强大的搜索功能等。
关键词:动态服务网页;论坛;JAVA目录前言(1)1系统需求分析说明(3)1.1系统介绍(3)1.2功能需求(3)2总体设计(4)2.1总体结构和模块设计(4)2.2处理流程(4)2.3数据库设计(6)3系统详细设计(9)3.1前台页面(10)3.2后台页面(15)3.3系统设计主要代码及配置文件(18)4测试234.1测试方法(23)4.2测试范围(23)4.3测试报告(23)总结与展望(25)参考文献(26)前言进入21世纪,计算机技术迅速向着网络化的、集成化方向发展。
传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。
另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。
本论文就是基于B/S结构实现的。
论坛也常被简称为论坛(BulletinBoardSystem)。
1978年在美国芝加哥开发出一套基于8080芯片的C论坛/Chicago(ComputerizedBulletinBoardSystem/Chicago),此乃最早的一套论坛系统。
论坛发展至今,目前世界上业余的论坛网络除了FidoNet(惠多网)以外,几个较具知名度的还有EggNet、AlterNet和R论坛-Net等等。
由于这些网络和FidoNet之间的信息交流不成问题,这就实现了所谓的跨网。
大约是从1991年开始,国内开始了第一个论坛站。
1996年更是以惊人的速度发展起来。
国内的论坛站,按其性质划分,可以分为两种:一种是商业论坛站,如新华龙讯网;另一种是业余论坛站,如天堂资讯站。
由于使用商业论坛站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。
多数业余论坛站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络ChinaFidoNet(中国惠多网)。
于是,各地的用户都可以通过本地的业余论坛站与远在异地的网友互通信息。
这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。
由于业余论坛站拥有这种优势,所以使用者都更乐意加入。
这里“业余”2字,并不是代表这种类型的论坛站的服务和技术水平是业余的,而是指这类论坛站的性质。
一般论坛站都是由志愿者开发的。
他们付出的不仅是金钱,更多的是精力。
其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平。
论坛是互联网一种人与人之间交互的必备工具,特别是做网站必备。
以前我们一直用留言本形式,但是随着您的网站的大规模化,越来越多的迫切需要一种可以易于维护和易于交流的平台,那就要用论坛。
论坛可以通过WEB浏览器访问,并且实现上传文件等诸多功能。
网民们便逐步开始接受这种使用方便快捷、功能日渐强大的系统。
在它上面网民们可以张贴和发布各种各样的信息,讨论各式话题。
随着中国网络的普及和计算机及其外设的大幅度降价,Internet这个概念逐渐深入人心。
中国网民的数量呈几何级数量增长,论坛的普及程度也直追Email。
每个网站几乎都拥有自己的论坛或者论坛链接,论坛社区提供给用户的服务是全面而且非常友好的,用户在社区中可以根据自己的喜好设置不同的显示风格,根据自己的需求定制各种服务。
通过论坛更加快捷的了解企业员工的信息,而建立会员服务的基础是建系论坛管理系统!通过应用该系统可以实现用户与用户间的交流、企业与企业间的信息交互,利用网络经济而又快捷地与外界进行各种信息沟通,取得更有用的信息资源。
论坛系统服务已经是互联网站一种极为常见的互动交流服务。
论坛可以向网友提供开放性的分类专题讨论区服务,可以在此发表自己的某些观感、交流某些技术、经验乃至人生的感悟与忧欢,亦可以做为网友们之间的交流渠道,网站亦可在此回答网友们提出的问题或发布某些消息。
通过论坛的方式,增强个人与个人,团体与团体,个人与团体之间的交流联系,在Internet上实现信息的传递,提高办事效率[5]。
因此论坛建设在Internet应用上的地位显而易见,它已成为现代人沟通和获取信息的重要组成部分,从而倍受人们的重视。
本文利用JSP和SQLServer2000做一个在线论坛系统。
该系统以Internet为平台,前台可使任何人注册、登陆在论坛上进行发贴及讨论,版主可以进行一部分管理。
1.系统需求分析说明1.1系统介绍本系统是基于B/S结构的一个小型论坛,主要基于Windows平台,通过这个论坛,用户之间可以实现互动交流。
1.2功能需求通过对网上的一些著名论坛的认识,该论坛至少应该实现以下功能:(1)注册管理:能够对用户名,密码的简单验证,能够防止利用页面刷新重复注册,已经存在的用户名称不能重复注册。
(4)用户个人信息管理:登陆用户可以编辑注册后的个人资料,如修改密码等,但是不可以修改用户名称。
也可以对自己发表的帖子进行操作:如修改,删除。
(5)回复管理:各论坛版块的版主可以对自己管理的版块的帖子的回复的帖子进行管理,可以屏蔽回复。
(6)论坛版块管理:只有管理员有该权限,管理员可以添加,删除版块,也可以修改版块资料,如版块名称,上级版块,版主。
(7)用户管理:只有管理员有该权限,管理员可以禁用,启用用户,进行用户密码重置。
(8)公告管理:只有管理员有该权限,管理员可以添加,删除公告。
(9)帖子管理:各论坛版块的版主可以对自己管理的版块的帖子进行管理,可以屏蔽和删除帖子。
2.总体设计本系统采用B/S模式设计,方便系统的维护和使用。
采取MVC设计模式与多层架构的基于J2EE平台的设计,使系统拥有良好的扩展性,在满足当前使用需求同时还兼顾系统以后可能的功能扩充。
系统分成几个相对独立的模块,但这些模块都进行集中式管理。
2.1总体结构和模块设计该系统可分为前台和后台两个部分,前台是提供给一般用户和版主使用的,后台是提供给管理员进行一些系统维护的。
功能结构图如下:图2.1系统功能结构图2.2处理流程对于本系统的使用者来说,可以分为以下几类:未注册的用户,已注册的用户。
已注册的用户又可以分为一般用户、版主、管理员三类。
根据用户角色的不同,用户拥有的权限也会不同。
根据这个来分析该系统的业务流程。
系统的业务流程如图2.2所示:图2.2业务流程图2.3数据库设计在建设网站系统之前,必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。
数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。
尽量分离各实体对应的表,一个实体对应一个表,分析该实体有哪些属性,对应有些什么字段,以及各实体之间的联系。
实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。
之所以选择它是因为JSP技术具有下面的特点:1)WriteOnceRunAnywhereJSP技术继承了JAVA先天性的先进概念“WriteOnceRunAnywhere”这种概念正越来越深远的影响着互连网行业的交互式、WEB设计的理念。
JSPPages可以非常容易的开平台跨WEB服务器软件来是设计和开放源代码。
2)支持多种动态网页格式目前对使用JSP技术设计出来的网页应该采取什么样的格式还没有一个明确的标准。
与以往的其它WEB应用技术相比较JSP技术有它很鲜明的特点。
3)JSP标签可扩充性尽管JSP与ASP都使用标签与脚本技术来制造动态WEB网页,但是JSP技术能够使开发者扩展JSP标签,使得应用JSP的开发者能定制标签库所以网页制作者可以充分利用与XML兼容的标签技术,大大减少了对脚本语言的依赖。
由于指定标签库技术使得网页制作者降低了制作网页和想多个网页扩充关键功能的复杂程度。
企业JavaBean可以访问传统的数据库并能并能已分布式系统模式工作于UNIX和WINDOWS平台,JSP标签可扩充功能为开发人员提供简便的与XML兼容的接口,即共享网页的打包功能使其完全的工业标准化。
这种基于组建的模式能够有效的提高应用程序的开发效率。
因为这种模式能够使开发人员利用快捷的子组建快速创建模板应用程序。
然后再整和一些附加功能将其打包成一个JAVABEAN组建。
5)易于维护性基于JSP技术的应用程序比基于ASP的应用程序更易于维护和管理。
脚本语言都很好服务于小的应用程序但不能适宜大型的复杂的应用程序,因为JAVA是结构化的,它比较比较容易创建和维护庞大的组建化的应用程序。
如果用户输入了正确的用户名称和密码,就会以用户的身份进入论坛的首页。
该用户就可以拥有更多的权限,可以浏览和搜索帖子,修改个人资料,删除和修改自己发表的主题帖子,发表和回复帖子。
如果用户点击了“注册”这个超链接,则会进入注册页面(图3.3所示)。
3.1.2论坛首页图3.2论坛首页在该页面中,显示了很多信息。
主要是各个版块的详细信息,包括版块的名称,版主,发表于该版块下的主题帖子总数,以及最新发表的帖子的信息。
若无发表的帖子,则显示暂无。
该页面上还显示了公告的信息,即公告栏显示的内容。
页面上还提供了搜索帖子的功能,可以根据作者名称来精确查找和根据帖子内容来模糊查找。
如果用户是通过浏览进入该页面的,则不会提供该超链接。
3.1.3注册页面图3.3注册页面用户可以在该页面中输入注册资料,包括用户名,密码,个性签名和头像。
用户名,密码,个性签名都是必填的,头像是默认选择第一个,用户也可以重新选择。
在用户提交之前,对所填的信息都作了验证,包括用户名非空并且不可重复,密码非空,密码长度必须大于或等于4,两次输入的密码必须一致,个性签名非空,且长度小于50。
在对用户名称的唯一性验证时,使用了AJAX技术,当用户输入完用户名,该文本框失去焦点时,会检查数据库中是否存在该用户名,如果不存在,则在文本框后用蓝色字体显示“Ok,你可以用这个名称!”,如果存在,则在文本框后用红色字体显示“No,这个名称已占用!”。
在这里简单介绍一下AJAX技术。
AJAX全称为“AsynchronousJavaScriptandXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
它使浏览器可以为用户提供更为自然的浏览体验。
Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。
借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。
当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。
最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的。
3.1.4发表帖子图3.4发表页面用户可以在该页面中填写帖子的资料,包括标题和内容。
提交之前也作了验证:标题非空且长度小于50,帖子内容非空且长度小于2000。
为提示用户控制输入,通过JavaScript实现了动态显示用户输入的字符数目。
为避免重复提交,提供了验证码,只有输入了正确的验证码后才会提交。
3.1.5显示帖子及回复图3.5显示贴子与回复页面在该页面中,显示了帖子的详细信息和回复的帖子的详细信息。
并且实现了分页功能,每页显示5个回复帖子。
分别实现屏蔽帖子和删除帖子的功能。
另外在回复的帖子后提供“屏蔽此回复”超链接,实现对回复的帖子的屏蔽操作。
3.1.6显示个人中心页面图3.6个人中心页面在该页面中,显示了用户的个人资料和发表的帖子的信息。
当用户点击“编辑个人资料”的超链接后,会进入修改该个人资料的页面,实现对个人信息的修改。
另外页面上分页显示了用户发表的主题帖子,用户可以这些帖子进行修改和删除操作。
3.2.2后台管理页面图3.8后台管理页面进入到后台管理后,首先显示的是如上图3.8所示的页面。
3.2.3用户管理页面图3.9用户管理页面点击后台管理页面的左边导航栏的“用户详细信息”超链接即可进入到该页面。
该页面分页显示了用户的部分资料,包括用户名,用户角色,是否禁用。
还对每个用户提供了“启用”,“禁用”,“密码重置”操作按钮。
管理员可以进行与之相对应的操作。
这些操作是通过AJAX实现的。
3.2.4公告管理页面图3.10公告管理页面点击后台管理页面的左边导航栏的“公告详细信息”超链接即可进入到该页面。
该页面分页显示了公告的详细信息,包括公共编号,公共内容。
管理员可以添加公告,删除公告。
点击页面上的添加图标即可进入到添加公告页面。
点击某个公告后的删除图标即可删除选定的某个公告。
3.2.5论坛版块管理页面图3.11论坛管理页面点击后台管理页面的左边导航栏的“论坛详细信息”超链接即可进入到该页面。
该页面分页显示了各个论坛板块的详细信息,包括论坛版块名称,上级版块名称,版主。
管理员可以对论坛版块进行添加,修改,删除操作。
点击页面上的添加图标即可进入到添加论坛版块的页面,完成添加功能。
点击某个版块后面的修改图标即可进入修改版块信息的页面,在修改页面中可以修改该版块的名称,上级版块,版主。
修改成功后跳转到显示所有论坛版块的页面。
点击某个版块后面的删除图标即可删除选中的论坛版块,如果删除成功就跳转到显示所有论坛版块的页面,如果删除失败就跳转到显示删除失败信息的页面。
3.3系统设计主要代码及配置文件3.3.1分页的JavaBean系统中的大部分JSP页面需要使用分页技术,因此使用一个JavaBean来专门完成分页的功能。
其中有Struts的配置文件Struts-config.xml,Spring的配置文件即与applicationContext-*.xml匹配的文件,另外还配置了Spring中Filter设置了字符集。
2)Struts-config.xml对于本系统为什么选择使用Struts技术,下面列举的这些理由是显而易见的:首先,它是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,经受了实战的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架显示出很好的融合性[16]。
该系统的Struts的配置文件中主要内容是ActionForm,DispatchAction的详细信息,以及各页面的跳转路径的控制信息。
3)Hibernate.cfg.xml本系统中对数据库操作的DAO是通过Hibernate来实现的,该层的事务处理都交给Hibernate来处理,下面简单的来介绍一下Hibernate。
Hibernate是一种Java语言下的对象关系映射解决方案。
它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
4)与Spring有关的三个配置文件在本系统中,利用Spring的依赖注入机制来实现了DAO对象的依赖注入,这样一来不用自己来创建对象实例。
Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。
它们也为Spring中的各种模块提供了基础支持。
以下是与系统有关的三个Spring的配置文件(1)applicationContext-common.xml在该文件中定义了哪些类的哪些方法参与事务,配置了SessionFactory,事务管理器,事务的传播特性。
(2)applicationContext-beans.xml在该配置文件中配置了各个模块的DAO层的详细信息。
(3)applicationContext-actions.xml在该配置文件中配置了各个DispatchAction中DAO对象的注入信息。