




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BBS系统的设计与实现摘要BBS全称为BulletinBoardSystem,中文就是“电子公告板”。 BBS是一种电子信息服务系统。它向用户提供了一块公共电子白板,每个用户都可以在上面发布信息或提出问题,早期的BBS由教育机构或研究机构管理,如今大多数网站上都建立了自己的BBS 系统,供网民通过网络来结交朋友,表达更多的想法,目前网络上的BBS已经十分普遍。 本BBS论坛在Struts框架基础上,结合Struts、Java、J2EE等基础知识,用jsp语言进行开发。论坛采用B/S体系结构,数据库采用mysql数据库。BBS论坛系统功能齐全,可以地发表自己的观点和对论坛的主题发表回复。本文从BBS系统的开发背景、相关技术、需求分析、详细设计、系统测试与维护等方面,通过文字、图形和表格的形式,详细介绍了这个网络论坛的整体架构和设计特点,阐述了整个系统的开发过程。关键词: BBS;MySQL;JSP技术;Struts全套设计加扣 3012250582IIAnalysis and design of BBS systemAbstractThe full name of the BBS Board System Bulletin, translated into Chinese is electronic bulletin board.BBS is an electronic information service system. It provides a public electronic whiteboard to users, each user can release the above information or views, early BBS educational institutions or research institutions, now most websites have set up their own BBS system, for Internet users through the Internet to make more friends, more to express the idea, the current domestic BBS has been very popular.This forum based on Struts framework, basic knowledge of Struts, Java, combined with J2EE,was developed by JSP language. Forum using B/S system structure, database using MySQL database. BBS forum function is complete, can express their views and opinions on BBS theme.This paper from the aspects of BBS system development background, related technology, needs analysis, detailed design, system testing and maintenance, through the text, graphical and tabular form, introduces the overall structure of the network forum, and design features,expounds the systems development process.Key words: BBS;MySQL;JSP;StrutsIII目 录摘 要IAbstractII1 绪论11.1 开发背景11.2 目的和意义21.3 开发工具31.3.1 MySQL数据库31.3.2 Struts框架31.3.3 JSP语言41.3.4 B/S模式52 需求分析62.1 可行性分析62.1.1 技术可行性62.1.2 操作可行性62.1.3 时间可行性62.2 系统功能分析62.2.1 系统功能需求72.2.2 系统的用例图72.3 系统性能分析82.3.1 灵活性要求82.3.2 输入输出要求82.3.3 稳定性要求83 系统设计93.1 数据库设计93.1.1 数据库物理结构93.1.2 数据流图103.1.3 E-R图113.2 系统概要设计123.2.1 功能模块设计123.2.2 系统界面设计123.2.3 系统组件设计134 详细设计154.1 框架设计154.1.1 数据库建立154.1.2 业务逻辑层154.1.3 前台表示层154.2 用户功能模块164.2.1 登录模块164.2.2 注册模块194.2.3 主题模块224.2.4 发帖模块264.2.5 回帖模块264.3 管理员功能模块274.3.1 版块管理274.3.2 用户管理304.3.3 帖子管理305 系统测试325.1 测试目的325.2 测试任务325.3 单元测试325.3.1 黑盒测试325.3.2 白盒测试37结 论38参考文献39致 谢40外文原文41中文翻译501 绪论本文中共分六章。第一章绪论,主要讲网上论坛的背景、意义,开发方法及开发工具简介;第二章系统需求分析,主要讲系统功能需求、性能需求及可行性分析;第三章概要设计,主要介绍系统工作流程、功能结构图及数据库表设计;第四章详细设计,主要讲各个功能的工作流程及具体的实现过程。第五章系统测试,主要介绍系统使用的测试方法及测试用例并计算系统的稳态可用性。第六章结论,主要总结了在设计项目,开发项目中的心得体会。每章附有本章重点介绍的功能图例及详细讲解,帮助理解系统的各部分功能。1.1 开发背景进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端服务器的C/S结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器服务器的B/S结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间, 影响和改变着我们的生活。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站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平。1.2 目的和意义目前,国内的BBS站,大多数还是大型综合性BBS站。随着计算机的普及,特别是宽带的普及,BBS的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS将会慢慢增加需求。尽管BBS站台的数量在不断增长,但BBS的发展过程,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。本文提出了目前比较流行的,基于MVC模式的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛。系统主要分为前台和后台。前台包括查看版面下根帖信息、用户注册、发表帖子、回复帖子等,后台是管理界面,主要包括论坛类别的管理版面管理和用户管理的操作。在Internet上,人们可以查询到几乎涉及所有自然学科、社会学科的信息。大型电子图书馆、网上信息库的建立,连入网络数量的继续增加及信息种类的不断丰富.使Internet成为独一无二的、最大的共享信息源。BBS同样也得益于Internet的信息优势。可以向网上用户提供极其丰富的信息资源。与Internet上其他资源相比,BBS是信息更新速度较快的一种。每个BBS站点的信息随时都处于不断更新中。BBS的普通用户在获取信息的同时,也提供各种不同的信息。BBS具有很强的实时交互操作功能,能够提供强大的站上实时交谈和交互游戏的功能。BBS按不同的主题、分主题分成很多个布告栏。布告栏的设立依据是大多数BBS使用者的要求和喜好,使用者可以阅读他人关于某个主题的最新看法,也可以将自己的想法毫无保留地贴到公告栏中。如果需要私下交流,也可以将想说的话直接发到某个人的电子信箱中。1.3 开发工具1.3.1 MySQL数据库MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任MySQL具有以下优点:1、首先是速度。对于MySQL来说,速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。但是在现在的文档中,我们看到MySQL 4.0.2-alpha已经开始支持事务,而且在MySQL的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。但是,仍然有理由相信,MySQL将有可能一直保持速度的优势。2、MySQL更适合在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在NT/Win2000/WinXP下,是一个服务), 在Windows运行中,MySQL更加的稳定。3、MySQL支持线程,在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。4、MySQL权限系统完善。MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限。MySQL还允许你指定基于主机的权限。 1.3.2 Struts框架Struts是Apache组织的一个开放源码项目。Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。它为JavaWeb应用提供了模型-视图-控制器(Model-View-Controller,简称MVC)框架,尤其适用于开发大型可扩展的Web应用。MVC模式,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。Struts为Web应用提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务问题上。此外,Struts框架提供了许多供扩展和定制的地方,应用程序可以方便的扩展框架,来更好的适应用户的实际需求。Struts使用Model2体系结构。 ActionServlet 负责控制流程。另外一个Struts类,Action,负责存取业务逻辑类。当ActionServlet类从窗口中获得一个请求时,它使用请求的URI(也称为路径)来决定是哪一个Action来处理该请求。一个Action可以检验输入的合法性、通过业务逻辑层来读取数据库或者其他数据服务中的信息。要校验输入的合法性或者是使用该输入来修改数据库中的内容,Action需要用户提交给它处理数据。为了避免每一个Action都要处理从请求中输入数据的操作,Struts将这些输入数据绑定到JavaBean中。每一个这样的Bean都是Struts中ActionForm类的子类。ActionServlet通过查看请求的路径就可以决定哪一个ActionForm用来包含输入数据。这些ActionFormod 类都应该是org.apache.struts.action.ActionForm的子类。每一个HTTP请求都必须有一个HTTP响应。一般而言,Struts自已并不生成响应,而是将请求转发到其他的资源上去例如JSP页面。Struts提供一个名为ActionForward的类来将逻辑名保存到每个面的路径。当业务逻辑部分已经执行完成后,Action会选择一个ActionForward,并且将它返回给每个总控servlet。总控Servlet 会使用在该Action Forward中存储的物理路径来调用对应的页面来完成HTTP响应部分。Struts将所有这些方面的细节信息都定义在ActionMapping对象中。每一个ActionMapping对象都对应于一个指定的路径。当该路径被请求时,总控servlet会获取对应的ActionMapp world wide webing对象。该对象会告诉总控servlet该使用哪些Action,ActionForm和ActionForward对象。全部有关 Action,ActionForm,ActionForward以及ActionMapping的信息和其他的配置信息都在Struts-config.xml文件中声明。ActionServlet在启动的时候会读取该文件,并且创建包含所有这些配置对象的数据库。在运行时刻,Struts会使用这些对象,而不是文件本身。1.3.3 JSP语言JSP(JavaServerPages)是由Sun公司倡导,许多别的公司参与一起创建的一种新动态网页技术标准,类似其他技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片断(Scriptlet)和JSP标签,构成了JSP网页(*.jsp)Servlet/JSP。所有程序操作都在服务器端运行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP称为Server-sideLanguage。所以被许多人认为是未来最有发展前途的动态网站技术之一。语言优势如下:1、将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成的内容的逻辑被封装在标识和JavaBeans组件中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面而不影响内容的生成。2、一次编写,到处运行作为Java平台的一部分,JSP拥有Java编程语言“一次编写,到处运行”的特点,随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,但并不影响当前的应用。3、JSP的平台适应性更广这是JSP比ASP的优越之处,几乎所有的平台都支持Java,它们可以在任何平台下通行无阻。虽然NT的OS占据了很大的市场的份额,但在服务器方面UNIX的优势仍然很大.从一个平台移植到另一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标注的字节码与平台无关。4、健壮的存储管理和安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为JavaServlet,JSP页面就具有Java技术的所有优点,包括健壮的存储管理和安全性。5、数据库连接技术数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。在struts-config.xml配置文件中,定义data-source元素设置了具体的数据源,可以使用这个数据源来连接数据库。使用数据源来连接数据库有很多优点,比如事务处理,连接效率,管理方便,J2EE核心技术JNDI实现等。1.3.4 B/S模式B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。2 需求分析2.1 可行性分析可行性分析是依据初步调查的结果做出系统开发可行与否的结论过程。任何一个工程的立项都需要进行项目的可行性分析。这是保证正确投资的必要工作,从项目的审批程序上看这也是必不可少的一步。信息系统开发项目是一项复杂的高科技系统工程,可行性分析也是必不可少的,可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决、是否值得去解决。根据调查分析,系统设计方案有以下三个可行性。2.1.1 技术可行性论坛在Struts框架的基础上,用当今主流的网站开发技术jsp语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问网站的主页,保证的服务器的安全。数据库采用易用的mysql数据库。该论坛功能齐全,可以发表自己的观点和对论坛的主题发表意见。系统采用三层结构,用My SQL数据库作为后台数据库,安装和使用简单易学,方便操作;前台页面采用JSP动态页面,JSP相比ASP、PHP都有很大的优势;控制层采用Struts框架,Struts是JavaWeb开发中使用的比较热门的技术。服务器采用Tomcat服务器,它是一个开源软件。2.1.2 操作可行性本系统要求运行环境不高,可以在Windows7操作系统平台上运行,Web服务器为Tomcat6.0,数据库服务器为My SQL,开发工具采用的MyEclipse。界面美观、易懂、容易操作、功能齐全,方便用户之间信息交流。2.1.3 时间可行性本系统虽有一定难度,但目前有很多优秀的书籍可供参阅,且参加过类似项目的开发,预计本系统在规定时间内,基本能够完成。综上所述,从技术、操作、时间可行性上来说,系统开发是完全可行的。2.2 系统功能分析本系统最基本的功能是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和回复者信息,系统还需要提供用户注册和登陆的功能。只有注册的用户登陆后才能够发表和回复主题,浏览者即游客只能浏览主题信息。根据用户的需求和上面的分析,论坛需要具备以下功能:显示各论坛类别及版面、查看版面下所有根帖、查看已发表的帖子查看根帖内容、用户注册、用户登录、发表帖子、回复帖子、进入后台、论坛类别管理、版面管理和用户管理。2.2.1 系统功能需求本系统是一套网上交流的BBS软件,根据用户的需要和实际的管理条件,应由用户功能,帖子功能和后台管理等几个模块所构成,用户可以对一些数据进行查找和修改,而管理员可以对用户和帖子进行相关的管理。1.用户功能实现 (1).用户的登录(2).用户的注册 (3).用户资料的修改(4).用户注销2.帖子功能实现(1).帖子的发表(2).帖子的回复3.后台管理(1).用户的管理(2).帖子的管理 (3).论坛板块的管理2.2.2 系统的用例图用例图是由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图。用例图展示了用例之间以及参与者之间是怎样相互联系的,用例图用于对系统或类的行为进行可视化。BBS系统的用例图如图2-1所示。图2-1 系统用例图2.3 系统性能分析对系统性能的要求包括对系统时间规定,灵活性,输入输出,数据管理能力,故障处理要求和运行环境规定等的要求。2.3.1 灵活性要求1、操作方式通俗易懂、容易上手,界面美观、大方,将Web程序转为控制台应用程序,符合用户操作习惯。2、本网站可以运行在IE6以上的所有版本。3、一个模块的改变不会影响其他的模块。2.3.2 输入输出要求能够对不完整的数据进行校验,保证数据的完整性和一致性,保证输入的数据符合系统的要求,输入内容正确无乱码。2.3.3 稳定性要求在系统运行过程中,当多个用户同时登录,进行多个相关操作时,要保证系统能够稳定,并且正确的运行,保证每个用户的响应速度在正常范围内。3 系统设计3.1 数据库设计根据前面的需求描述,功能要求,本系统中可以抽象出来的数据模型有:用户(user)、模块(module)、主题(topic)、回复(retopic)等。3.1.1 数据库物理结构(1).用户基本资料表:用户基本资料表中存放的是用户登陆时所需要或者记录用户的基本信息,包含比如用户名,密码,年龄,姓名,最后登陆时间等。用户基本信息表的建立主要是记录用户最基本,最常用的一些信息。如表3-1所示。表3-1 用户信息表字段名数据类型长度主键外键可空说明IDint20是否否主键UserNameVarchar20否是否用户名NameVarchar60否否否姓名AgeInt10否否是年龄PasswordVarchar40否否否密码Emailvarchar255否否是电子邮件Questionvarchar255否否否提示问题Answervarchar255否否否提示答案RegTimedatetime否否否注册时间LoginTimedatetime否否否最后登陆时间SignDetailtext否否是用户签名(2).论坛文章表:论坛文章表存放的是用户所发表的文章信息,也包括回复信息,帖子所在版块,发表时间,发表者相关信息,浏览次数等。而在数据库的设计中主要问题是鉴别帖子信息和回复信息。如表3-2所示。表3-2 论坛文章表字段名数据类型长度主键可空说明IDint20是否主键BoardIDint20否否版区IDBoardNamevarchar60否否版区名字ReNumint11否否回复数量ClickNumint11否否浏览次数UserIDint20否否发表者IDUserNamevarchar20否否发表者姓名Titlevarchar150否否文章标题Detailtext否否文章内容postTimedatatime20否否发表时间(3).论坛版区表:论坛版区表是存放的是论坛中版块信息,如版块名字,描述等。而论坛被划分多个子版块,区分这些版块是靠表中的主键字段来实现的。具体实际的设计如表3-3所示。表3-3 论坛版块表字段名数据类型长度主键外键可空说明IDint20是否否主键BoardNamevarchar255否否否版块名字Explainstext否否否版块描述PostNumint11否否否文章数量3.1.2 数据流图数据流图即DFD(Data Flow Diagram)图。是用于分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。BBS系统的第一层数据流图,描述系统由哪几部分组成,各部分之间有什么联系,如图3-1所示。管 理 员BBS系统用 户 用户登录 管理用户 用户注册 管理版块 发表主题管理主题 回复主题 信息管理图3-1 BBS系统数据流图3.1.3 E-R图数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。BBS系统的E-R模型如图3-2所示。用户1发表N帖子 详细资料11N管理理管理员 1 N添加1修改版块图3-2 BBS系统E-R图3.2 系统概要设计3.2.1 功能模块设计 (1)用户模块此模块用来实现会员的登录,注册和会员资料的修改和查找。1.会员登录模块:会员可以通过此模块对论坛进行登陆,登录时需要输入用户名,密码,经过验证后便可以使用所有的会员功能,比如发帖回复等等。2.会员注册模块:没有会员帐号的用户,可以通过此模块注册成为会员,注册时需要输入用户的基本信息,姓名,邮箱,年龄等,注册成功后便可登录论坛,使用会员功能。3.资料修改模块:已注册的会员在登录后,可以通过此模块,对会员的基本资料,联系方式,密码,等资料进行修改。 (2)帖子模块1.帖子发表模块:已注册的会员在登录后,可以在相应的版块中,发表自己的帖子,发表成功后,其他会员便可以在对应的版块中看到这篇帖子,并可以对其进行回复等操作。2.帖子回复模块:会员在发表完帖子后,用户便可查看该文章,并可以在论坛中对已发表的帖子进行回复,评价。 (3)后台管理模块1.帖子管理模块:帖子管理模块是管理员对帖子管理的平台,如果管理员查看到帖子有不适宜发表的内容时,可以对帖子进行删除操作。2.用户管理模块:管理员可以通过此模块,对会员进行管理,对一些不合法的用户可以删除其资料,删除该用户。3.版块管理模块:管理员可以对论坛版块进行创建,删除等操作,更好的维护论坛,增加论坛的趣味性。3.2.2 系统界面设计对于系统来说,用户界面设计将非常重要,因为一个交互良好的界面能够加深浏览者的印象。设计界面的第一步是设计版面布局。设计是有原则的,无论使用何种手法对画面中的元素进行组合,都一定要遵循五个大的原则:统一、连贯、分割、对比及和谐。统一,是指设计作品的整体性,一致性。设计作品的整体效果是至关重要的,在设计中不能将各组成部分孤立分散,那样会使画面呈现出一种枝蔓纷杂的凌乱效果。连贯,是指要注意页面的相互关系。设计中应利用各组成部分在内容上的内在联系和表现形式上的相互呼应,并注意整个页面设计风格的一致性,实现视觉上和心理上的连贯,使整个页面设计的各个部分极为融洽,犹如一气呵成。分割,是指将页面分成若干小块,小块之间有视觉上的不同,这样可以使观者一目了然。在信息量很多时为使观者能够看清楚,就要注意到将画面进行有效的分割。分割不仅是表现形式的需要。换个角度来讲,分割也可以被视为对于页面内容的一种分类归纳。和谐是指整个页面符合美的法则,浑然一体。如果页面仅仅是色彩、形状、线条的随意混合,那么不但没有“生命感”,而且也根本无法实现视觉设计的传达功能。和谐不仅要看结构形式,而且要看其所形成的视觉效果能否与人的视觉感受形成一种沟通,产生心灵的共鸣。这是设计能否成功的关键。最后设计BBS系统的登录界面、主界面以及浏览帖子的界面。3.2.3 系统组件设计(1)过滤器组件:Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码为了解决此类问题,需要设计一个组件来解决此类问题,每次请求和响应到达客户和服务器端时,都先经过此过滤器对字符进行过滤。过滤器原理图如图3-3所示。发送请求用户过滤器(对字符进行过滤)服务器返回响应图3-3字符过滤器原理图(2)权限管理组件:在论坛中的的用户一定会遇到关于权限的问题,比如没有登录的用户只可以查看帖子,而即使登录的用户,也只可以对自己应有的权限进行操作,不可以操作管理员的功能。解决此类问题,本系统是通过判断特定的session来判断用户的权限,当用户登录成功后,组件会发送相应的用户session,之后每次用户对论坛进行操作,都要先通过session,来判断用户的权限。4 详细设计4.1 框架设计4.1.1 数据库建立在数据库的设计中,本文已经确立了表结构。根据这些就可以创建数据库,在数据库创建并连接好后,就可以创建表、修改表和删除表,创建、修改、和删除主键、外键等等。选中“bbs”数据库,use database并使用create table等sql语句,依次创建表结构。系统采用JSPStruts+Spring架构,数据库采用MySQL,使用Spring的配置文件beans.xml连接数据库,其连接数据库的配置信息如下:使用加入Dao的形式进行数据库操作,在Dao中实现对数据表的增加、删除、查询、修改操作,Dao不进行其他的逻辑操作。前台JSP页面产生的请求交由对应的Action进行逻辑操作,当其要对数据库进行操作时,通过WebApplicationContext 对象获取Dao,将要操作的对象的相关参数传给Dao即可。这就是对接口编程,使各个模块之间低耦合,有利于程序的可扩展性。4.1.2 业务逻辑层本系统的业务逻辑是交由struts中的Action进行判断的,比如判断登录的业务逻辑时,会建立一个LoginAction类来进行逻辑判断,而一些关联的映射,BBS系统是写在struts框架的struts-config.xml中。4.1.3 前台表示层论坛的前台显示主要包括:首页面的论坛类别显示、某版面下根帖的列表显示、和根帖与回复帖内容的详细显示;用户登录界面的显示。前台显示模块包括用户的一些功能,具体的可分为用户注册、用户登录、用户注销、查看版面、查看主题、查看回复、发表主题和发表回复等功能。由于主题是在版块下存在的,所以在版块下的任何地方都可以发表主题,而回复只能是针对主题进行回复,所以必须在主题下才能发表回复,也就是在主题页面下才能点击发表回复。现将部分功能说明如下:游客(未登录用户)可以浏览bbs论坛系统的帖子及回复,但不能发表帖子和回复。若发表帖子和回复时会弹出警告,提示用户未登录,并跳转到登录界面。系统主界面如图4-1所示。图4-1 BBS系统主界面4.2 用户功能模块4.2.1 登录模块用户登录:用户在有帐号的前提下,可以在登录页面entry.jsp或主页bbs.jsp中输入用户名和密码点击登录,系统将用户名和密码提交到LoginAction.java中的entry()方法,将用户提交的用户名和密码再转交给后台的Dao进行查询,如果有这样的一条记录存在则登录成功,将用户的个人信息保存在浏览器端的Session中,否则返回登录页面,并提示用户名或密码错误。登录界面如图4-2所示。图4-2 BBS系统登录界面LoginAction.java的entry方法的代码如下:public ActionForward entry(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();UserDao userDao = (UserDao)ctx.getBean(userDao);String userName = request.getParameter(username);String pwd= request.getParameter(pwd);if(userDao.checkLogin(userName, pwd)User user= userDao.getUser(userName);request.getSession().setAttribute(user,user);elserequest.setAttribute(returnInfo, 用户名或密码错误!);return mapping.findForward(bbs); 登录界面主要代码: 用户登录用户名:密 码: 注册 用户注销:已登录用户在退出网站时注销登录状态,系统将请求交给LoginAction.java的loginOut()方法处理,在loginOut()方法中修改用户最后离线时间,将修改保存到数据库中,并将浏览器端的Session的user属性移除,系统返回主页。可注销界面如图4-3所示。图4-3 BBS系统登录后可注销界面LoginAction.java类的loginOut方法的代码如下:public ActionForward loginOut(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();UserDao userDao = (UserDao)ctx.getBean(userDao);User user=(User)request.getSession().getAttribute(user);Date date=new Date();user.setLastTime(date);userDao.updateUser(user);request.getSession().removeAttribute(user); return mappi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖北省荆州市警察招考行政能力测验模拟题(附答案)
- 2025年学历类自考学前儿童数学教育-政治经济学(财经类)参考题库含答案解析(5套试卷)
- 2025年教育学原理试题及答案
- 2025年农村淘宝试题及答案
- 2025年学历类自考外科护理学(二)-外国文学作品选参考题库含答案解析(5套试卷)
- 肿瘤免疫组学分析-第1篇-洞察及研究
- 2025年学历类自考中外教育简史-学前教育史参考题库含答案解析(5套试卷)
- 浮山后租房合同范本
- 民间借贷专用合同范本
- 材料采购销合同范本
- 2025广告公司收购合同范本
- 中国中煤华东分公司所属舟山公司招聘笔试题库2025
- JJF 2216-2025电磁流量计在线校准规范
- 高处安装维护拆除作业培训
- 工厂防呆培训课件
- 消防联动调试方案
- 自动化仪表施工方案
- 图书管理员考试复习全书:试题及答案
- T-CECC 029.1-2024 数据分类分级指南 第1部分:医疗健康
- 污泥运输合同范本
- DBJ04T 289-2020 建筑工程施工安全资料管理标准
评论
0/150
提交评论