




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国石油大学胜利学院本科毕业设计(论文)基于B/S架构的网络论坛设计与实现毕业论文第一章 论坛系统开发背景及意义1. 系统开发背景论坛又名网络论坛BBS,全称为Bulletin Board System(电子公告板)或者Bulletin Board Service(公告板服务)。是Internet上的一种电子信息服务系统。它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。它是一种交互性强,内容丰富而即使的Internet电子信息服务系统。用户在专题论坛上可以获得各种信息服务,发布信息,进行讨论,聊天等等。论坛的发展也如同网络,雨后春笋般的出现,并迅速的发展壮大。现在的论坛几乎涵盖了我们生活的各个方面,几乎每一个人都可以找到自己感兴趣或者需要了解的专题性论坛,而各类网站,综合性门户网站或者功能性专题网站也都青睐于开设自己的论坛,以促进网友之间的交流,增加互动性和丰富网站的内容。而专题论坛只是其中的一类。此类论坛是相对于综合类论坛而言,专题类的论坛,能够吸引真正志同道合的人一起来交流探讨,有利于信息的分类整合和搜集,专题性论坛对学术科研教学都起到重要的作用,例如军事类论坛,情感倾诉类论坛,电脑爱好者论坛,动漫论坛,这样的专题性论坛能够在单独的一个领域里进行版块的划分设置。在本文中,主要介绍使用JSP和Servlet技术来实现论坛建设。通过基于Internet互联网的动态WEB数据库技术,可以解决远程的数据传输与读取,远程的客户终端(Client)可以通过WEB页面提交请求,查询远端的数据服务器上的信息,同时还可以向远端数据服务器的数据库中存储信息,以实现信息的共享,同时利用Internet技术可以降低软件的开发和部署成本,只要在服务器端安装WEB应用就可以使每个客户端都能浏览使用。目前,通过专题论坛系统可随时取得各种自己需要最新的信息;也可以通过专题论坛系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及人文、地理等等各种有趣的话题;还可以利用本系统来发布一些“问题”、“廉价转让”、“招聘人才”及“求职应聘”等启事;更可以召集亲朋好友到聊天室 内高谈阔论这个精彩的天地就在你我的身旁,只要您拥有一台可以访问互联网的计算机,就可以通过这个交流平台,来享用它的种种服务。2. 系统开发意义当今网络技术逐渐渗入社会生活各个层面,以前网站上的专题论坛管理系统要用户登陆以后才能进行相关访问及互动。而随着网络互联技术的进步,现在网站投票只需打开网页就可进行论坛留言。专题论坛对象是很多的,各个层次都可进行论坛访问,大至国家领导,小至一个普通干部,访问和留言从到指定用户进行表格到现在通过网络直接点击相应就可进行。专题论坛管理系统可解决游客访问及留言,致使现在几乎各个网站都有各种类型的专题论坛管理系统,用户可选择自己的看法。同时为分散于五湖四海的人们提供一个共同交流、学习、倾吐心声的平台,实现来自不同地方的用户极强的信息互动性,用户在获得自己所需要的信息的同时也可以广交朋友,拓宽自己的视野和社交面2。通过网友的发帖中,能得到有益的教诲和启发。网友通过发出关于国家,社会的有益的观点,能被有关部门采纳,而不是网友空自评论,自艾自叹,自喜自悲。一些论点能做到各方观点正确公平的显示,具有参考价值。专题论坛应具有知识性,趣味性,公平性,和谐性等优点。专题论坛给天下的网民都提供了交流的平台,为网络的互动性作出了巨大的贡献,通过专题论坛,网民们得以更方便的交流,更便捷的发表自己的观点,而且发布信息都是通过有记录的文字来进行,所以这样也避免了精华内容的流失。通过专题论坛来征得自己想要的信息,有更高的效率和时效性。也最节约成本和资源,在专题论坛的交流过程中,无论喜怒哀乐都是在虚拟的环境中进行,也避免的正面的尴尬和冲突等,在专题论坛中,可以演变成任何角色,变换多种身份,因为网络的特征,使得人民更加依赖于论坛中的交流。36第二章 系统分析1. 技术可行性分析1.1 开发语言综述本系统是基于面向对象思想的JAVA语言中J2EE平台进行编写,J2EE平台具有以下优点:(1)简化结构:J2EE平台支持简化的、基于组件开发模型,由于J2EE基于Java编程语言和J2SE平台,它提供了编写一次,随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型。EJB组件使编写应用程序更为简单。尽管EJB体系结构复杂,但应用程序开发人员一般都必再编写访问系统服务的代码,EJB容器会实现系统级的服务,例如,事务、安全性等。另外,J2EE还支持异构环境。基于J2EE的应用程序不依赖任何特定操作系统、中间件或硬件,因此,设计合理的基于J2EE的程序只需开发一次就可以部署到各种平台,这在典型的异构企业算环境中是十分关键的。J2EE标准还允许客户订购与J2EE兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用1。(2)提高开发效率:由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。例如:图形设计师创建JSP模板,商业逻辑由该领域的专家完成,JSP页面和EJB由Java工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发。(3)可移植性强:除了Java语言固有的可移植性外,EJB体系结构在Bean和支持该Bean的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将Bean从一种操作环境移植到另一种操作环境,而无需重新编写其源代码。(4)重用性好:由于在EJB模型中,各个软件组件都是严格分离的,因此,可以从现有的软件组件装配出服务器端应用程序,这与从现有的JavaBean可以装配出客户端应用程序一样,使软件能够重用。(5)易于维护:基于组件的设计简化了应用程序的维护。由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。(6)可伸缩性:企业必须要选择一种服务器端平台,以便满足那些在它们系统上进行商业动作大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端UNIX或其他的大型机系统上。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。(7)被广泛接受:主要的IT供应用商都采纳EJB体系结构,不同供应商的产品只要符合EJB体系结构,就都是可互操作的。1.2 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可以对只读表进行压缩,此后仍然可以直接访问该表中的行。1.3 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所示。 图2-2 Spring框架构成(3)Hibernate框架Hibernate 是一个开放源码的 ORM 持久层框架。作为优秀的持久层框架实现,Hibernate 框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。Hibernate框架结构如图2-3所示。 图2-3 Hibernate框架1.4 系统层次设计系统很据S.S.H框架的特点,决定使用四层结构,这样做的优点是(1)可以分层开发,访问数据库与业务逻辑实现能够分开。(2)提高代码的复用。系统层次如图2-4所示。图2-4 系统的分层结构1.5 技术可行性综述综上所述,这些成熟的框架和优秀的设计思想,为系统建设提供了技术条件。计算机等基础设施的更新换代也紧跟潮流的发展,这就为开发系统提供了坚实基础。2. 系统需求分析2.1 系统开发运行环境鉴于系统的开发语言和数据库,采用如下的开发环境:开发环境:Windows 2000NT TomCat6.0 JDK1.5硬件实现:Pentium2.4G 1G内存 80G硬盘开发语言:Java数 据 库:MySQL开发工具:MyEclipse5.1 预期成果:一个可扩展的基于MVC模式的 BBS论坛。2.2 业务描述对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等3。系统的用例图如图2-5所示。图2-5 系统用例图2.3 系统功能概述本系统是一套网上交流的BBS软件,根据用户的需要和实际的管理条件,应由用户功能实现,帖子功能实现和后台管理等几个模块所构成,用户可以对一些数据进行查找和修改,并且注册的用户可以对帖子进行特定的操作,而管理员可以对用户和帖子进行相关的管理。鉴于本系统的性质,系统应该实现以下功能。(1)用户的登录(2)用户的注册(3)用户的查找(4)用户资料的修改(5)帖子的发表(6)帖子的回复(7)帖子的查找(8)用户的管理(8)帖子的管理(9)论坛信息的管理(10)图片的管理2.4 数据流程本系统是为了提供给广大用户一个网上交流的平台,所以论坛的流程是以用户为中心进行的。数据流图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据流图具有以下两个特性:(1)抽象性:表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理与存储。(2)概括性:表现在它可以把信息中的各种不同业务处理过程联系起来,形成一个整体。论坛系统的数据流程图如图2-6所示。图2-6 数据流程图第三章 专题论坛系统设计1. 数据库设计在对系统数据库进行设计的过程中,通过对系统功能进行需求分析得到系统的基本信息表,绘制系统业务流程图和系统数据流程图,分析得到数据字典;在概率结构设计阶段通过对需求阶段得到的用户需求抽象得到数据库关系模型的E-R图;在逻辑结构设计阶段得到数据库的关系模式并绘制信息表。1.1 数据库需求分析需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。综合以上分析,要实现上面的所有功能模块,数据库共要设计八个表,它们分别是:(1)用户表(user):用户ID、用户名、密码、性别、Email、QQ、类型、发帖数、头像地址、注册日期、积分。(2)版主(master):版主ID、板块ID。(3)管理员表(admin):管理员ID、管理员姓名、管理员密码。(4)板块表(plate):板块ID、板块名称、帖子数、板块简介、创建日期。(5)帖子表(posts):帖子ID、帖子标题、帖子内容、发表日期、发表者、所在版块ID、回复数、点击数。(6)回复内容表(reply):回复ID、回复者、回复帖子ID、回复时间、回复内容。(7)公告表(notice):公告ID、公告标题、公告内容、发布时间。(8)留言信息表(message):留言ID、留言标题、留言内容、留言时间。通过参考网上比较出名的论坛和查询相应的资料,大体了解了论坛系统的基本流程,因此设计了前台和后台两个模块的层次流程图。前台层次图如图3-1所示。图3-1 前台层次图后台层次图如图3-2所示。图3-2 后台层次图1.2 数据库概念结构设计概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键,包括概念模型设计和新系统流程两个阶段。在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。概念数据模型独立于具体的数据处理的细节和数据库管理系统。这次设计仍采用传统的实体联系图作为概念设计的工具。再进行优化后,尽量满足结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。系统E-R图如图3-3所示。图3-3 系统E-R图1.3数据库逻辑结构设计对于关系型数据库,数据库的概念结构设计完毕后,要把E-R图描述的概念数据模型转换为等价的关系模式极其约束。逻辑设计的基本工作主要包括如下的3个步骤。该设计以概念结构设计中的E-R图为主要依据,这几出相关的整体逻辑结构。系统数据流设计如图3-4所示。图3-4 系统数据流设计图完整性要求用于描述各种信息之间的制约关系,以及关联关系,各个数据项的取值范围以及各个数据项是否可以取值。根据实际需要,采取一定的手段来满足用户的完整性需求。域完整性约束要求属性值必须在域中。实体完整性约束要求主键必须唯一且不能为空。如用户信息表中的用户名设置为主键,并且要求唯一且不能为空。1.4 数据库表设计用户表如表3-1所示:表3-1 用户信息表(user)字段名类型(值)说明UserID(主键)Int(10)用户IDUserNameVarchar(20)用户名UserPasswordVarchar(20)用户密码UserSexVarchar(4)用户性别EmailVarchar(50)用户EmailRegdatedate注册日期PrivilegeInt(10)0:普通用户;1:版主QQVarchar(10)QQImageAddrVarchar(20)头像地址UserPostsCountInt(255)用户发帖数Integral Int(255)积分板块表如表3-2所示:表3-2 板块信息表(plate)字段名类型(值)说明PlateID(主键)Int(10)板块IDPlateNameVarchar(20)板块名字PlateDescribeVarchar(128)板块简介PlateDatedate创建日期PostsCountInt(255)帖子条数帖子信息表如表3-3所示:表3-3 帖子信息表(posts)字段名类型(值)说明postsID(主键)Int(10)帖子IDTitleVarchar(128)帖子标题ContentVarchar(10000)帖子内容PostsDatedatetime发表日期UserNameVarchar(20)发表者PlateIDInt(10)所在板块IDClickInt(255)点击次数ReplyCountInt(255)回复次数回复信息表如表3-4所示:表3-4 回复信息表(reply)字段名类型(值)说明ReplyID(主键)Int(10)IDReplyContentVarchar(5000)回复内容PostsIDInt(10)回复帖子IDUserNameVarchar(20)回复人ReplyTimeDatetime回复时间版主表如表3-5所示:表3-5 版主表(master)字段名类型(值)说明userIDInt(10)版主ID(用户ID)PlateIDInt(10)板块ID公告信息表如表3-6所示:表3-6 公告信息表(notice)字段名类型(值)说明NoticeID(主键)Int(10)公告IDNoticeContentVarchar(5000)公告内容NoticeTimedatetime发表日期NoticeTitleVarchar(128)公告标题管理员信息表如表3-7所示:表3-7 管理员信息表(admin)字段名类型(值)说明ID(主键)Int(10)管理员IDAdminNameVarchar(20)管理员名字AdminPasswordVarchar(20)管理员密码留言信息表如表3-8所示:表3-8 留言信息表(message)字段名类型(值)说明MessageID(主键)Int(10)留言IDMessageTitleVarchar(128)留言标题MessageContentVarchar(5000)留言内容MessageTimeDatetime发布时间2. 系统结构设计2.1 页面模块化设计模块化设计的要求不仅是为了提高代码的重用性,更重要的是为了提高代码的可维护性和稳定性。一个模块化程度高、结构清晰的应用程序,在程序维护时的便利性是可想而知的。最初设计方案时,就要规划好哪些模块是可以提出来多次使用,哪些模块虽只使用一次,但提出来之后能使代码更清晰等。所以把页面中一些常用代码编写为独立的单元,例如页面的头部和尾部、首页各个显示区,这样设计新的页面时如果有重复出现的部分,只需要将编写好的模块用INCLUDE语句来组装就可以了。专题论坛系统功能模块有以下几部分组成:(1)用户注册新用户注册,填写用户信息,检验用户信息的有效性,并将用户信息持久化。(2)用户登陆提供用户凭证,验证用户信息是否合法,根据用户角色授权。(3)用户管理管理员由系统初始化分配一个,管理员可以对用户信息进行部分更改,主要包括用户角色调整,版主调整,删除用户等。(4)论坛版块管理管理员可以添加、删除、修改论坛版块。(5)帖子管理管理员可以对所有帖子进行修改、删除等操作,版主可以对本版块帖子进行修改、删除等操作。(6)帖子发表注册用户可以在感兴趣的版块中发表新帖。(7)帖子回复用户可以对自己感兴趣的主题发表回复。(8)帖子浏览用户可以浏览所有帖子。(9)意见建议用户可以与我们联系,并欢迎提出各种意见和建议。2.2 MVC模式设计(Jsp+Servlet+JavaBean)MVC(Model View Controller)是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图是用户看到并与之交互的界面。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。JSP页面处于表现层,也就是视力(View即V)的角色。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。JavaBean则负责数据的处理,也就是模型(Model即M)的角色。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。Servlet用来处理请求的事务,充当控制器(Controller即C)的角色,Servlet负责响应用户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。初始的请求由Servlet来处理,Servlet调用商业逻辑和数据处理代码,并创建Bean来表示相应的结果(模型)。然后Servlet确定哪个页面适合于表达这些特定的结果,并将请求转发到相应的页面(JSP页面即为视图),由Servlet确定哪个业务逻辑适用,应该用哪个JSP页面相应结果(Servlet就是控制器)。第四章 系统的详细设计网络论坛系统采用JSP编写,利用SQL Server 2005数据库存储信息。网页按实际需求及功能模块编写,按如下顺序详细介绍,包括前台显示设计,发表帖子模块设计,根帖操作设计和后台版面管理模块设计。1. 代码标识设计代码设计问题是一个科学管理的问题。设计出一个好的代码方案对于系统的开发工作是一件极为有利的事情。在信息系统中,代码是人和机器的共同语言,是便于进行分类、核对、统计和检索的关键。代码设计是实现管理信息系统的关键,其目的是设计出一套为本系统各部分所共用的、优化的代码系统。代码设计的好坏,不仅直接影响到计算机进行数据处理时是否方便,是否能节省存储空间,是否能提高处理速度、效率和精度,而且还关系到系统能否实际运行起来。因此,在进行此设计之前,要设计出适合新系统的代码体系。代码设计可以使很多机器处理(如某些统计、校对查询等)变得十分方便。2. 代码设计原则(1)唯一性:每个代码仅代表唯一的实体或属性。(2)标准化:尽可能用国际、国家或行业标准,以便交换与维护。(3)合理性:代码结构要合理,尽量反映编码对象的特征,并与事物分类体系相适应,以以便代码具有分类的标识作用。(4)易识别性:代码既要便于管理人员使用时的识别与记忆又要便于计算机的识别和分类。(5)可扩展性与灵活性:代码系统要考虑系统的发展变化。当增加新的实体或属性时,直接利用源代码加以扩充,而不需要变动代码系统。(6)实用性:尽量使用业务上已经使用的且行之有效的代码,方便使用。(7)可扩充性:代码设计时要留有余地,在将来系统发展与变化时可直接利用原代码体系加以追加,而不需要变动原代码体系。3. 系统主要功能流程及模块论坛的前台显示主要包括:首页面的论坛类别显示、某版面下根帖的列表显示、我的帖子的列表显示、精华帖子的列表显示、搜索后根帖的列表显示和根帖与回复帖内容的详细显示。3.1 跟帖模块设计String sql2=select bbsAnswer_sender, bbsAnswer_sendTime from tb_bbsAnswer where bbsAnswer_rootID = ? order by bbsAnswer_sendTime;回复贴界面如图4-1所示。 图4-1 回复贴显示 根帖与回复帖内容的详细显示,可通过根帖的ID查询数据表获取根帖的信息后封装到ActionForm中,然后存储到session对象中,在返回JSP页面后通过bean标签库中的write标签输出。实现显示根帖的回复帖,同样可通过根帖的ID值查询回复帖数据来获取,最后获取的是一个List集合对象,集合中的灭一个元素封装了回复帖信息的ActionForm,将该List集合对象存储在session对象内,在返回到JSP页面后,通过logic标签库中的iterator标签遍历输出。实现此过程主要代码如下5:【主题】 3.2 发表帖子模块设计发表帖子界面如图4-2所示。 图4-2 用户发表帖子显示用户进行发表帖子,首先进行登录成功后,进行输入内容,才可完成发表帖子的功能。发表帖子模块使用了Validator框架验证表单,由开发人员自行设置验证规则。发表帖子时需要用户输入的信息有根帖标题、根帖表情和根帖内容,最后执行SQL语句完成发表帖子的操作,其主要代码有4:/传递调用的方法/传递是否进行表单验证的参数/输出验证主题失败的提示信息/输出验证内容失败的提示信息Validation.xml文件中的验证发表帖子表单的验证主要代码: /对主题字段验证的配置 maxlength35/对发帖内容验证的配置maxlength1000在BbsAction类中使用方法AddBbs(),获取表单数据,然后向数据表中插入记录的SQL语句,最后执行该语句完成发表帖子的操作。String sql=insert into tb_bbs values(?,?,?,?,?,?,?,?,?,?,?);/生成SQL语句Objectparams=boardId,bbsTitle,bbsContent,bbsSender,bbsSendTime,bbsFace,bbsOpTime,bbsIsTop,bbsToTopTime,bbsIsGood,bbsToGoodTime;OpDB myOp=new OpDB();int i=myOp.OpUpdate(sql,params);/执行SQL语句3.3 根帖操作设计将帖子提前的操作,首先判断当前操作用户的身份,若当前用户是管理员或当前版主或当前帖子的发表者,则实现提前帖子的功能,否则生成无权操作的提示信息。实现该操作的主要代码如下:/* 如果当前登录的用户是帖子的发表者、帖子所属版面的版主、管理员 */if(lognerAble.equals(2)|lognerName.equals(master)|lognerName.equals(bbsSender)if(bbsId!=null&!bbsId.equals()Object params=time,bbsId;String sql=update tb_bbs set bbs_opTime=? where bbs_id=?;/生成SQL语句OpDB myOp=new OpDB();int i=myOp.OpUpdate(sql,params);/执行SQL语句,实现提前帖子elseSystem.out.println(您没有权限提前该帖子!);messages.add(userOpR,new ActionMessage(luntan.bbs.first.N);/生成无权操作提示信息置顶帖子如图4-3所示。图4-3 置顶帖子显示将帖子置顶的操作,首先编写一个过滤器,当用户触发超链接时,执行该过滤器,验证用户身份是否为管理员,首先从session中获取当前用户,然后判断其用户身份。String able=logoner.getUserAble();/longer为在session中存储的登录用户if(able.equals(2) /如果身份是管理员chain.doFilter(Srequest, Sresponse);else/生成无权操作的提示信息request.setAttribute(message,您没有权限进行该操作!);RequestDispatcher rd=request.getRequestDispatcher(/pages/message.jsp);rd.forward(Srequest,Sresponse);/返回无权操作的提示页面实现帖子置顶的操作,首先获取请求中传递的帖子的ID值,然后获取当前时间,最后生成SQL语句,并执行该SQL语句实现置顶帖子的操作。String bbsId=request.getParameter(bbsId);/获取帖子的ID值if(bbsId!=nul&!bbsId.equals()Date date=new Date();/获取当前时间String today=Change.dateTimeChange(date);String sql=update tb_bbs set bbs_isTop=1, bbs_toTopTime=? where bbs_id=?;/生成SQL语句Object params=today,bbsId; ActionMessages messages=new ActionMessages();OpDB myOp=new OpDB();int i=myOp.OpUpdate(sql, params);/执行SQL语句第五章 系统测试系统测试是基于系统整体需求说明书的测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。1. 程序的测试方法系统测试是保证系统质量与可靠性的最后关口,是对整个系统开发包括系统分析,系统设计和系统实施的最终审查。虽然在系统开发的各个阶段都采取了严格的技术措施,希望能尽快发现问题并改正,但难免会留下差错,如果在正式投入运行前没有发现问题,在工作中暴露出来,将给商城带来很大的损失。因此,对系统进行测试,是系统开发中必不可少的阶段。系统测试的基本原则:基于以上系统测试的概念,在进行系统测试中应遵循以下原则,测试工作应避免由原开发软件的人员或小组来承担;(1)所有测试都应该追溯到用户需求。(2)在测试前必须制定完整的测试计划。(3)在测试前选择完备的测试用例。(4)85%的软件错误产生于15%的模块中。(5)测试应该由小规模测试逐步过渡到大规模测试。(6)穷举测试是不可能的,软件不可能不存在错误。(7)精心制定测试计划尽可能多的发现软件中的错误。软件测试是软件的质量管理,核心技术是软件测试用例,软件测试是有组织性、步骤性、计划性的。测试的形态分构建性测试、系统化测试、专项测试。软件测试的方式分为白盒技术和黑盒技术。白盒测试又称结构性测试,是内部人员进行的测试;黑盒测试测试着重于软件的功能的测试,测试人员必须使用测试用例。黑盒测试的技术分为等价划分、边界值分析、错误推测。等价划分原则:若规定了输入个数选择一个有效等价类,两个无效等价类;若输入是一组值,需要对属性进行判别,选择不同的属性输入;若输入是整数选正整数、零、负整数;若是处理时,选空表、满表、典型表。2. 软件的功能测试根据上一章的系统详细设计方案,制定了如下测试方案。2.1 链接测试由于本论坛的页面并不多,用户身份也不多,所以链接测试采取的是覆盖测试的方法,用所有的用户身份,逐个去测试链接跳转的正确性。测试用例如表5-1所示:表5-1测试用例及结果表用户身份起始页面链接应当跳转页面测试结果游客首页注册按钮注册页面成功游客首页登陆按钮登陆页面成功游客首页搜索按钮搜索页面成功用户首页个人信息按钮个人信息页面成功用户首页搜索按钮搜索页面成功管理员首页管理论坛按钮管理页面成功游客主题页面主题帖子页面成功游客主题页面回到首页按钮首页成功用户主题页面主题帖子页面成功用户主题页面发帖按钮发表主题页面成功游客帖子页面回到首页首页成功用户帖子页面回到首页首页成功用户发表主题页面返回主题页面成功管理员管理页面返回首页首页成功2.2 功能模块测试本论坛的功能模块较多,多数功能较简单,因此只列举几个重要的功能模块来描述整个测试过程。功能模块测试用例如表5-2所示:表5-2测试用例及结果表用户身份测试页面操作步骤验证方法预期结果实际结果结论游客注册页面未用的用户名去登陆页面登陆验证可以登陆并跳转至首页注册成功注册功能完好准确用户帖子页面点击发表回复是否成功显示看见自己的回复回帖成功回帖功能完好准确版主帖子页面删除一条回帖此操作是否成功显示“删除成功”删除成功功能完好准
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课程学科英语课堂游戏
- 题型01 文字史料型选择题 专项训练-2026届高三统编版历史一轮复习
- 情景交际-中考英语一轮复习
- 生活用电-2023学年九年级物理上学期期末复习汇编(人教版)
- 人教版八年级英语下册UNIT10单元过关卷(含答案)
- 老师课件使用情况评价
- 老师网络课件使用困难
- 2017年1月国开电大法学本科《国际法》期末纸质考试试题及答案
- 老师保健知识培训
- 老人消防安全知识培训课件
- DL∕T 1482-2015 架空输电线路无人机巡检作业技术导则
- After Effects特效制作 教案全套 许艳凰 项目1-12 走入特效世界 使用AE制作简单的视频特效- 团队协作优势 AE与其他软件的配合使用
- 全球及中国衍射光学元件(DOE)行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030)
- 普通地质学完整版课件
- 第1课 社会主义在中国的确立与探索(导学案)-【中职专用】高一思想政治《中国特色社会主义》(高教版2023·基础模块)
- 第1课《时代精神的精华》第2框《马克思主义哲学指引人生路》-【中职专用】《哲学与人生》同步课堂课件
- “日照绿茶”优势特色产业培育方案(2021-2025年)
- 无人机生涯规划
- 高中化学新教材同步选择性必修第一册 第1章 研究与实践 了解火箭推进剂(同步讲义)
- 直流电磁继电器
- 全新发布:2023年抗菌药物分级管理目录
评论
0/150
提交评论