




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽新华学院2014届本科毕业论文(设计) 本科毕业论文(设计)题目:基于J2EE技术实现高校BBS论坛设计 姓 名: 学 号: 专 业:计算机科学与技术 院 系: 信息工程学院 指导老师: 胡俊 职称学位: 助教硕士 完成时间: 2014年4月30日 教务处制摘 要随着经济的快速发展,21世纪已经是属于网络的时代。同时21世纪也是一个物质和经济的时代,人们的心声也开始慢慢的增多。时常可以看到和听到人们的各种各样的观点和评论。本文是根据高校的需求设计出基于Web的高校BBS交流论坛。首先介绍了论坛的由来、基本思想、发展趋势。以及系统的一些特色,系统流程及结构。最后讲述了实施技术以及开发平台。分析了建立基于Web的高校BBS论坛的必要性和可行性,然后对论坛进行了需求分析和系统设计。论文给出了基于Web的心声交流论坛开发实例。该实例实现了心声交流论坛管理的一些主要功能。主要包括用户管理、板块管理、主贴管理、回帖管理、公告管理、广告管理六个模块。不但可以实现普通论坛的发帖和回帖基本用户要求。而且还引入了系统的特色:温馨的提示、用户信息安全、提供免费的视频学习。而且可以充分的利用当前网络资源共享化的特点,给基于Web的心声交流论坛的开发提供了一个好的思路。关键词:Web,MVC,Struts,数据库,心声交流论坛,ABSTRACTWith the rapid development of economy,The twenty-first Centery is the era of network。At the same time,peoples economy continue to get rich.So twenty-first Centery is a time of material,the voice of the people also begin to slowly increase.Often can see and hear people comment on a variety of ideas and phenomena.This paper is based on the realization of Web voice communication forum was studied.First introduced the development trend of origin、the basic idea、development tendency.As well as the system features,the system process and structure.Finally the implementation techniques and development platform.Analysis of the necessity and feasibility based on of establishment of Web voice communication forum.and then voice communication forum needs and system design.Paper presents the development of Web based voice communication forum instance.The example of the realization of some main functions of voice communication forum management.Includes user management、plate management、topic management、reply management、announcement management、advertising management six module.Not only can realize the normal daily forum posts and replies.It has also introduce the characteristic of the system,such as warm prompt、user information safety ,provide free video warm.But also good internet and rapid collection of information from the Internat and release of information to use fully.For voice communication based on Web forum development provides a good ideas.Key Words:Web,MVC,Struts,Database,Voice Communication Forum目 录1. 绪 论11.1 本课题研究的背景11.2 本课题研究的意义11.3 论文研究思路和所作的主要工作22. 高校BBS交流论坛的实现技术32.1 使用Java技术的优势32.2 Java包含的一些技术以及开发工具42.2.1 Servlet、JDBC、JSP和JavaBeans42.2.2 Struts2.0技术介绍62.2.3 Ajax、Jquery、JavaScript介绍72.2.4 MVC模式介绍92.2.5 MyEclipse开发工具的介绍103. 高校BBS论坛交流的需求分析113.1 可行性分析113.2 论坛的特性需求分析124. 高校BBS论坛的总体设计144.1 系统整体结构设计144.2 系统的功能结构设计144.3 BBS论坛的系统流程图154.4 系统的开发环境155. 数据库的设计175.1 数据库分析175.2 数据库概要设计175.3 数据库的逻辑设计216. BBS论坛的详细设计与实现266.1 系统整体功能模块介绍266.2 功能界面268. 总结与期望31参考文献33致谢351. 绪 论1.1 本课题研究的背景现在已经是互联网时代,网络慢慢地已经离不开我们的日常生活。心声交流论坛是一种电子服务系统。它为用户提供了一个空白的编辑区域。每个注册该论坛的用户都可以在上面发表自己对某个主题的看法,其面向的用户是广大群众。通过该论坛,网名可以自由的发表自己的想法和在网站上找到和自己有共同兴趣爱好的人。同时,虽然当今社会交流的工具和软件也比比皆是,但是,人们对于信息的需求却永远无止境。通过该心声交流论坛,我们可以吸收更多的信息和获得更多的交流信息。也可以在论坛上发表自己的见解和看法,很好的起到了及时发泄用户的情绪和心情的桥梁作用。其可以充当一个中间件角色。而且,对于每一个不同的用户也具有不同的权限。例如,对于普通的登录该论坛的用户但是却没有注册该论坛的用户,其只能看到一些该论坛的普通帖子信息。但是对于管理员和版主的话,可以创建自己感兴趣的话题和主帖。基于以上原因,本文是基于Web的心声交流论坛设计和实现,选择板块管理作为突破口,目的在于对基于Web的心声交流论坛进行研究的同时,为基于Web的心声交流系统的实现进行深入的探讨。1.2 本课题研究的意义心声交流论坛从现实生活中和信息化的角度来说。首先作为一个交流平台,大家可以自由的发表自己的看法和见解,其次,每天可以为用户实时提供新的帖子、照片、适用于不同的人群。 随着信息化时代的到来,网络技术的快速发展和腾飞,人们对于精神生活的关注也倍加加重。通过该论坛,用户可以诉说自己心中的想法和及时的发泄自己的情感,也是一个很好平台。个性化的回帖设计,用户可以选择图片,对字帖等进行设计。使用自己喜欢的表情和字体。可以对自己的文字进行处理,添加各种表情。最后,免费的为用户提供服务,用户的参与度高、积极性强。1.3 论文研究思路和所作的主要工作随着IT信息的普及和网络信息的大众化,以及社会快速发展的需求人们开始慢慢的喜欢上了快餐主义。开始快速吸取一些信息和日常的生活需求,也开始在网络上坦白的表达自己的观点和看法。不在像以前那样压抑着自己的内心真实的想法。不在变得像以前那样无处发泄。本文针对国内现在人们对于网络的需求和使用,运用了JSP、Struts2.0、Ajax、Jquery、JavaScript、Servlet等技术以及一些插件,像FCKEditor用于对文字进行编辑处理的插件。在一般论坛的设计基础模板上为例子,研究给予Web技术的心声交流论坛的实现。主要工作有以下:(1)对国内市场人们感兴趣的话题进行深入的了解和市场分析,从而建立起与之对应的plate和topic,让人们可以在上面进行自由的评论。(2)分析目前国内心声交流论坛的研究应用现状。剖析在论坛建设的过程中会出现什么样的问题以及找到如何处理这些问题的解决办法。(3)深入探讨基于Web的心声交流论坛的整个体系结构设计、系统开发方法和系统实现技术相关技术等问题。并对心声交流论坛进行需求分析和数据流程分析。(4)以心声交流论坛系统为实例进行重新开发,实现心声交流论坛主要的功能,为我的毕业设计基于Web的心声交流论坛系统的开发提供了一个好的思路。2. 高校BBS交流论坛的实现技术Java是一种基于计算机网络的开发语言,而且其是一种纯粹的面向对象的编程语言,是由Sun 公司推出的。其最大的优点就是“跨平台”性,而且在进行Java开发的时候我们只需要安装一个JDK即可以。平时基于Java开发的应用程序同时也是基于Web的,另外,因为Java的跨平台性,可以使得应用程序运行在不同的硬件平台。自从Java的创始人James Gosiling开发Java语言之后,其发展也是非常的快速和飞进。最近,由于Sun公司被Oracle公司收购之后。其得到了更好的发展机会,此外各大数据库厂商纷纷表示他们将会更好的支持Internet,支持Java。并且许多的应用软件厂家推出了采用Java进行开发的应用程序。并且Java的良好表现证明了它是一种非常成熟的、值得我们开发人员和厂商信赖的语言。本文的开发语言就是采用Java来实现的,因此,在本论文中将对Java技术做一个简单的介绍。2.1 使用Java技术的优势 Java是一种纯面向对象的高级编程语言,1995年由Sun公司创立,具有面向对象、分布式、解释执行、健壮性和安全性、体系结构中立、可移植性、多线程、动态等特点。和其它编程语言相比,它有很多的优势。使用Java的优点具体的体现在以下的一些:(1)灵活可扩展性Java非常的灵活,我们在进行Java程序开发的时候,其可以支持部署和开发环境中的各种变化。而且由于Java是面向对象的基础平台上构建的,所以也很容易对基本的语言进行扩展和发布。在修改别人的代码的时候我们不需要关注各个模块之间的耦合性,只要做好自己模块的扩展和修改即可以的。(2)具有很多厂商的支持采用Java开发已经是一个主流趋势所向,因为其受到了广泛的厂商支持。其中Oracle公司是Java行业的一个巨头,由于Sun公司被Oracle公司收购之后,其更是独大一家,它继续支持并且会更加壮大Java发展,对产品会将继续支持。这种支持Java的公司很多,因此选择Java语言非常的稳定,不会因为将来开发语言的改变将和厂商捆绑在一起。(3)平台无关性Java语言的最大优势就是“跨平台”,其它编程语言面临的最主要的问题就是操作系统的变化,例如当我们在windows xp系统下编写一个C+程序的时候,当需要在另外一个windows server 2003系统下运行的时候就需要重新调整23。当我们的电脑硬件配置发生变化时候,都可能导致程序出现错误或者无法运行。Java虚拟机成功的帮助我们解决了这个问题,我们只要在一台机子上面安装一个JRE(Java RunningTime Environment)即可以运行Java的代码程序,Sun公司实现了自己的目标“一次运行,随处运行”24。(4)安全性当你准备从网络上下载一个应用程序的时候,也许你最担心的就是程序中含有恶意代码了。如果你使用的浏览器支持Java,你可以放心的运行Java程序。(5)动态性Java程序的组成单元是类,所谓的类就是对方法和属性的封装。有些类是自己动手编写和封装的类,但是JDK为我们提供了一套API接口。里面包含了许多的工具类,例如java.util包下面的类。而类又是运行时候动态加载的,这使得Java可以在各种环境中动态的维护程序和类库,而不像其它语言那样,每当升级之后都一定需要自己亲自重新修改,编译。2.2 Java包含的一些技术以及开发工具2.2.1 Servlet、JDBC、JSP和JavaBeansServlet我们也可以称它为小应用服务器。Servlet主要是用于Java Web程序开发。Servlet的本质也是JSP,当我们将其进行编译之后其也是一个JSP文件。但是Servlet不同于JSP的是,Servlet更擅长于处理业务逻辑,但是JSP的视图显示比Servlet方便。所以我们在做一般的Java Web项目的时候(当不使用框架的时候)一般用JSP做视图显示,用Servlet做业务逻辑处理。由于Java是垮平台的,因此Servlet也可以与平台无关。其Java内部是以线程的方式提供服务的,而且Servlet是单例模式,当有一个服务请求过来的时候,服务器会为它创建一个进程,多个线程共享这个进程,不必对每个请求都创建一个进程,并且利用多线程和加锁可以保证多个请求之间互相不干扰,保证了服务的独立性,因此效率也是很高的。JDBC(Java Database Connection)作为一个连接数据库的工具对象,用于执行SQL语句的Java API,它的是由Java编程语言编写的类和接口组成。JDBC为它提供了一个标准的API(Application Program Interface应用程序接口)4。可以只使用java语言来编写应用程序。同时,作为一种规范,它也让各个数据库厂商为Java程序员提供了访问数据库类和接口的标准。总的来说,JDBC的功能主要体现在以下三个方面:首先发送数据库连接请求建立连接、接着将发送SQL语句、最后执行SQL语句并且返回处理结果。当我们在调用JDBC的接口和类的时候,首先我们需要得到一个Connection连接对象,从而实现对数据库的操作,这一点和Hibernate操作数据库的时候类似-都是通过Connection对象去操作数据库2。JDBC API同时支持数据库访问的两层模型和三层模型。在两层模型中,应用程序或者Java applet将直接与数据库进行通话。此时需要一个数据库的驱动来与特定数据库管理系统通信。获得链接对象之后SQL语句被送往数据库,数据库再将处理结果返回给用户。这当中用户的计算机为客户机,提供数据库的电脑为服务器,我们也称之为C/S配置。但是在三层模型中,用户发送的命令是先被送到中间层,中间层在收到这个请求命令之后再将之发给服务器,服务器在处理完SQL语句之后再将相应的处理结果返回到中间层,最后由中间层再将结果返回给客户端。这种模式就是三层式结构,也称之为B/S模式3。JSP(Java Server Pages)用于组成包含动态的Web的网页内容(HTML、DHTML、XHTML以及XML等网页)的一种应用Java网页技术。其组成主要包含HTML和Java代码片段。JSP的出现让动态的Web网页开发变得更加简单、灵活和效率高。其主要用于配合Servlet一起进行Java Web的开发,具有自己独立的语法和一些专用的标签。JavaBeans号称java的种子,主要用于对应数据库中的表,用于封装对象。是Java的可重用技术组件。对应着这MVC开发模式中的Model,用于持久化对象数据,将数据库中面向关系的数据和面向对象编程时候的数据对象对应起来。一般需要事先java.io.Serializable接口就可以实现持久化。 2.2.2 Struts2.0技术介绍Struts2.0框架的开发是为了减少在使用MVC模式的时候开发Web应用的时间,通过struts2.0我们可以完成其中一些很发杂的业务工作。和Tomcat等其它Apache项目一样,它也是开源的项目,这样,可以让开发者更好的了解它们内部机制。同时,Struts2.0主要是用于业务逻辑的处理,其工作的核心就是拦截器。拦截器不同于Servlet中的过滤器。拦截器主要是拦截一类的请求,例如在Struts2.0中主要拦截*.action的请求,而过滤器可以过滤任何请求。Struts2.0的开发优势主要体现在一下两个方面:标签库和页面导航。其中Taglib是Struts2.0的标签库,灵活使用。能很大程度的提高了开发的效率,与其它的标签不一样的是,EL表达式不仅可以操作对象的普通方法和属性,而且可以为属性赋值,这也是区别于其它标签的最大地方。而页面导航,则是Struts2.0的另外一个大的优势,仅仅通过一个*.xml配置文件,我们就可以完成整个项目的业务逻辑脉络。这对于后期的维护有很大的好处,当另外一批开发者接手这个项目的时候,其只需要查看相关的配置文件就可以很快的理解其项目整体开发思路。Struts2.0的工作原理是:首先,我们的客户端发送一个*.action的请求,服务器tomcat容器接收这个特殊的请求,经过滤器过滤后到达转到Struts2.0默认的FilterDispatcher过滤器。而FilterDispatcher过滤器也是Struts2.0工作的核心所在,在该过滤器中可以过滤一些不需要处理的请求,从而减轻了系统的开销20。Tomcat启动web容器的时候就会加载配置文件里面相关的参数,转到相应的*Action处理类去处理请求,如果找到相应的Action,过滤器会把请求的处理首先交给ActionProxy代理去处理。因为ActionProxy只是一个代理对象,其真实的实现处理需要去创建一个ActionInvocation实例。并且ActionInvocation是处于ActionProxy层之下的,它可以明显的表现Action的执行状态,它获得了Action的所有引用和相关的Interceptor。相关实例调用ActionInvocation.invoke方法,进一步调用Action的实现时,将会执行interceptor拦截,在action方法被调用之后,相关拦截器的也将被调用。最后执行完之后,会返回一个String类型的字符串,我们再到struts-*.xml配置文件中就可以找到其相应的视图展示页面*.jsp。图2.1 Struts2.0的工作原理图2.2.3 Ajax、Jquery、JavaScript介绍Ajax(asynchronous JavaScript and XML)是异步JavaScript和Xml,是一种用于生成交互式网页的主要开发技术,使用Ajax技术,我们可以做到局部刷新数据的目的,从而不用刷新整个页面,这样就可以提高页面的及时刷新性。而JavaScript中的XMLHttpRequest参数变量则是我们对服务器进行操作的核心对象,它可以让我们在不重新刷新页面的情况下与Web服务器进行交换数据15。从而大大节省了服务器的开销,可使英特网应用程序更小、更快、更友好。Ajax技术是一种不依赖于Web服务器软件的浏览器技术。Ajax的工作原理是基于下面几个标准:第一,Ajax的变化多样性技术、第二,耦合性要求高的客户端服务端环境。Ajax提出了一种新的开发方式,其要求开发人员掌握MVC的程度也很高,因此其对于应用的层次也就做了限定。同时开发人员还要考虑CS环境的外部和使用Ajax技术来重新定义MVC边界。开发人员必须以页面集合的方式来考虑Web应用,并且需要将其认为是单个页面。图2.2 ajax的开发框架Jquery是在prototype之后的又一个杰出的JavaScript框架,是我们平时开发使用的一个非重量级的js仓库,不但兼容css3,同时对各种版本的浏览器均支持。Jquery可以让用户更加简单地对HTML documents、events、实现动画效果进行处理,并且可以为网站提供便捷的ajax交叉互动3。它还有一个很大优势就是相关文档说明很齐全,而且各种使用说明也很详细,其也可以兼容很多的插件。其也做到了让html页面保持代码和html内容分离,提供了多种方法来调用相关的js,不再需要将相应的js代码都写到一个页面中,可以通过id来调用相应的js18。Jquery的特点主要有以下几点:(1)动态特效。(2)很好的兼容ajax技术。(3)可以通过插件来扩展。(4)方便的工具-例如我们可以通过浏览器来判断。(5)渐进性的增强。(6)链式调用,可以一个对象同时调用多个函数来添加多个效果。(7)最后,支持浏览器的种类多,像IE6.0以上、Opera9.0以上、FireFox2以上、Chrome1.0以上等主流浏览器均支持。JavaScript是一种以对象和事件驱动为主的客户端的脚本开发语言,主要用于支持Java语言的开发,同时也用于为java进行web页面的开发提供参考,不但可以处理页面的动态效果,而且也是一种广泛用于客户端的Web开发的脚本语言。常常用来给需要添加动态功能的网页进行处理。是一种基于原型、动态的语言,也是有Sun公司注册的商标。因为JavaScript为开发人员提供了完整的编程语句,基本语句包括:for循环语句、while循环语句、for each循环语句、switch选择语句、dowhile语句、break循环终止语句、continue、with、trycatch语句、if(ifelse、ifelse if)。丰富的语句支持可以让我们更好的展示一个效果。从技术层面的角度来讲,我觉得它的核心优势主要有三点:HTTP请求(AJAX)有javascript发起。动态操作DOM。支持页面对象。(1)我们可以让HTTP请求的发送变主动了,不再是机械式的只有当用户点击之后才能触发。而是主动的发送http请求时为了和服务器进行交互式的拿数据了,再根据返回的数据(XML、JSON、字符串也可以)给予用户反馈。我们平常项目中遇到的较多的就是经典的表单验证。(2)根据http的请求的结果做出相应,可以刷新图片了,显示一个新的div等等,可以给用户一个变现力很强的回馈。而这些我们可以不通过刷新整个页面,因此用户不用等待很久就可以得到自己想要的数据。(3)JavaScript是支持面向对象的,而面向对象的开发方法又是一种很好的组织代码的方式。2.2.4 MVC模式介绍MVC也即Model-View-Control的简写,是一种经典的开发模式。Model就是java中的模型对象,其相当于JavaBean。View用作视图展示,我们一般用jsp做view,当然也可以通过Spring Framework来展示。Control也即控制层,我们一般用Servlet或者Action来做control处理。MVC模式降低了数据接口和业务逻辑层之间的耦合性。平时开发中常见的MVC设计实现方式有:Spring、Struts、Jsp和Servlet几种,其中Struts继承了MVC的各种属性和基于J2EE的特点,做适当的修改和扩展7。使用MVC开发的优势如下:(1)低耦合性的视图层和业务层,让你只需要更改视图层的代码,而不需要重新编译模型和控制器代码。(2)重用性高,MVC模式允许使用各种不同样式的视图来展示同一个服务器的代码。(3)生命周期成本低,MVC使得开发和维护用户的技术含量降低。(4)部署快,使用了MVC模式之后使得开发时间快速缩减,它可以让程序员集中精力与业务逻辑处理,界面程序员集中精力表现在形式上。(5)可维护性高,分离视图层和业务逻辑层也使得整个项目易于维护和修改。(6) 有利于使用软件工程化的标准来管理。图2.3 MVC模型2.2.5 MyEclipse开发工具的介绍我们平时使用的Myeclipse是在Eclipse的基础之上开发出来的,Eclipse是免费的,但是Myeclipse不是免费的,是一个很优秀的适用于Java,J2EE开发的插件集合,其功能也非常的强大,对于各种开源产品的支持也很到位。本身集成了Struts、Hibernate、Spring等框架,可以进行框架的很好整合25。3 高校BBS论坛交流的需求分析现在已是互联网时代,网络慢慢地已经离不开我们的日常生活。心声交流论坛是一种电子服务系统。它为用户提供了一个空白的编辑区域。每个注册该论坛的用户都可以在上面发表自己对某个主题的看法,其面向的用户是广大群众。通过该论坛,网名可以自由的发表自己的想法和在网站上找到和自己有共同兴趣爱好的人15。3.1 可行性分析可行性分析是在我们每一个系统进行开发之前都要进行的一个必须过程。如果要是可行性分析都不能通过的话我们肯定不能再进行接下来的一切有关开发的流程。其中,可行性分析有包括以下几个方面:(1)技术可行性技术可行性是指在我们平时所学的一些技术是否可以帮助我们解决和实现相关的需求分析,以及当遇到某些技术问题的时候我们是否可以通过一段时间的学习去克服它。我的毕业系统是采用B/S的设计结构进行开发的,当前的主流开发架构也是B/S,因此当自己面对一些问题的时候网上的参考资料也还是挺多的,相信对自己的开发也会也很大的帮助,这也是技术可行性的一个重要体现。数据库使用的是当前中小型企业开发的主流数据库mysql,由于是开源的数据库不用担心其费用,而且在数据的管理方面也是挺完善的。因此在数据方面也得到了很好的保证,使用起来也灵活性很强,自己电脑在硬件方面,开发所需系统为Windows XP,而且主要的开发技术为Struts2.0框架、Jsp、Servlet。(2)经济可行性本项目主要也是一个用来模拟论坛供用户交流的平台,但是也是我自己拿来做毕业设计的项目,只是在自己电脑上进行的模拟,也就不存在什么资金的流动性了,因此,在经济上也是可行的。(3)社会可行性伴随着21世界早已经是互联网的时代,Internet的快速发展,论坛的发展已经得到了人们的大力支持。其也成为了人们彼此交流沟通的一种渠道,人们可以对自己感兴趣的话题进行发表,然而,其他人可以对该话题进行回复。它早已经成为了人们网上生活的必备工具了。所以说其社会可行性也是没问题的。3.2 论坛的特性需求分析该论坛的主要一些特色有如下一些:(1)温馨的提示特性作为一个论坛网站,我觉得用户信息的友好提示也是很重要的一个方面,温馨的提示可以让用户对该网站具有更好的评价和体验度。而且通过提示我们也可以让用户更加方便和快捷的融入到网站的整体设计中。以下是用户注册时候的温馨提示:图3.1 用户注册温馨提示(2)用户信息的安全性当用户登录的时候我们引入了验证码的校验,从而可以更好的保证用户信息的安全性,也可以防止一些黑客的简单攻击,不但要把用户名和密码正确输入而且验证码也要通过验证才可以登录到系统中,使用相应的权限。而且在登录的时候我们也会提示用户是注册名或者密码错误,而不会单纯的提示说是密码错误,这样也可以更加方便的做到了防止黑客破解用户名和密码。图3.2 用户信息安全登录(3)提供免费的视频观看与普通的论坛一样,我们都具有可以到网站进行回帖和发帖的功能,除此之外,该系统还可以为登录到该系统的用户提供免费的视频观看和学习,可以在累的时候和休闲的时候来到该论坛找找视频看看。(4)完全的评论自由性或许有些论坛会禁止某些用户的某些方面的评论,而且一般用户回帖和发帖之类的都需要管理论坛的管理者去审核和通过了,但是在该论坛的话完全是评论的自由,只要用户不是赤裸裸的发表一些大家都严厉禁止的东西或者视频的话我们一般会让其通过的。这也充分的体现了民主、自由的特色。4 高校BBS论坛的总体设计4.1 系统整体结构设计该论坛的管理系统在整体风格上的设计思路是:首先,如果是一个游客(也即没有注册该论坛的用户),其只有观看网页上相应信息的权限,不能进行任何的操作。当以一个普通用户(数据库中我们通过user_status=3字段来表示),其就具有了对该论坛的相应的topic进行reply的权限。当其是以版主的身份(在数据库中我们以user_status=2来标记)时候,其可以对其topic进行增删改查和在相应的plate下面创建topic。而且也可以自己发表reply。当其是以管理员身份登录的时候,具有版主的权限,而且可以管理plate。最后,在使用完之后就推出该系统。系统整体结构图如下:图4.1 系统整体架构图4.2 系统的功能结构设计当一个用户注册该论坛的时候,其就可以登录到我们的系统。可以享受到该系统的一些服务和资源,可以对论坛中的一些帖子进行回复和发表自己喜欢的帖子。该系统主要功能模块分为六个部分:用户管理、板块管理、主帖管理、回帖管理、广告管理、公告管理。在用户管理的时候我设计了不同的用户拥有不同的权限,如果是管理员的话则可以对整个论坛进行管理,若是为版主的话就只有管理某一个板块的权限,普通用户的话则只能只能对某一个topic进行reply。系统的功能结构图如下:图4.2 系统功能结构图4.3 BBS论坛的系统流程图论坛的流程图如下:图4.3 系统流程图4.4 系统的开发环境开发该论坛的软件和硬件环境需要具备以下相关环境服务器端:操作系统:Windows XP系统Web服务器端:Tomcat 6.0Java开发包:jdk1.6_10数据库:mysqlPhotoshop美图工具Dreamweaver网页处理器IE或者FireFox、Google Chrome浏览器均可以客户端:IE或者FireFox、Google Chrome浏览器均可以5 数据库的设计5.1 数据库分析数据库作为整个系统信息的载体,其作用毋庸置疑,所以,对于数据的安全级保密性都致关重要了。在程序开发中起着非常重要的作用,常常决定了在后面的程序设计中我们将进行怎样的代码编程。一个设计合理的、有限的数据库可以降低我们对程序的复杂性理解,可以让整个开发过程更为简单,往往成功的数据库设计是项目成功的重要保证。由于本项目是一个小型的毕业设计,而且从经济、开发成本的角度来说我们都是要选择免费的,然而,mysql作为一种开源的数据库管理软件,其为许多的中小型企业提供了很好的保证,降低了开发的成本。这是作为一个企业最基本的保障。同时mysql也提供了一个JDBC编程的接口,这样我们可以很方便的应用Java来操作数据库了。5.2 数据库概要设计E-R模型是我们对现实世界的一种抽象描述。它的主要成分有实体、属性和联系。通过这三种成分我们可以建立许许多多的应用环境的E-R模型。本系统的实体主要包含:用户实体、版块实体、主帖实体、回帖实体、广告实体、公告实体。下面将一一介绍几个实体以及实体E-R图。1用户实体用户实体中包括用户id、用户名、用户密码、用户邮箱、手机号码、用户QQ、用户性别、用户等级。其中用户id是唯一标识一个用户的字段(也即我们所说的主键),而且用户名、密码和用户邮箱是注册一个用户的时候必须填写的属性。当一个注册完的用户登录到该论坛的时候其可以再修改完善自己的信息,而且用户邮箱的填写可以用来到时候找回密码的时候所必须要的。其中用户等级用user_status来表示,这个字段在实际管理中也是非常的重要的,用以标识一个用户的身份,我们定义user_status=1表示身份是管理员,user_status=2表示板块的版主用户,user_status=3的时候表示普通用户。用户实体的E-R图如下所示:图5.1 用户实体E-R图2版块实体版块实体包括:板块id、用户id、板块父类id、板块名称、板块内容、创建日期、板块的状态。其中板块id是用来唯一标识该板块的字段,用户id则是关联着该板块是由那个用户创建的,板块父类id用以标识该版块是属于那个plate下面的板块,若是父类id为0则表示该版块是一级板块,否则对应的则为二级版块。版块的状态则表示该版块是否还是处于使用的状态(当状态为1时候表示还在使用,为0则表示该版块已经过期了或者没有被使用了)。版块E-R图如下所示:图5.2 版块实体E-R图3主帖实体主贴实体包括:主贴id、版块id、用户id、主贴名称、主贴内容、主贴创建时间、状态。主贴id则唯一表示该主帖帖子。板块id关联该主帖子是属于那个plate模块下面,用户id则表示该主帖是由谁创建的,状态也是表示该帖子是否还是处于使用状态(当状态为1时候表示还在使用,为0则表示该版块已经过期了或者没有被使用了)。主帖E-R图如下所示:图5.3 主帖实体E-R图4回帖实体回帖实体包括:回帖id、用户id、主帖id、回帖内容、回帖时间、状态。其中,回帖id用以唯一标识一个回帖,用户id关联着用户,主贴id关联着该回帖是属于哪个主帖子下面。状态也是用于标识该回帖是否还是处于使用状态(当状态为1时候表示还在使用,为0则表示该版块已经过期了或者没有被使用了)。其中回帖实体的E-R图如下:图5.4 回帖实体E-R图5广告实体广告实体包括:广告id、用户id、广告名称、广告内容、广告创建日期、状态。其中广告id是唯一标识该广告的字段,用户id关联一个用户。状态也是用于标识该广告是否还是处于使用状态(当状态为1时候表示还在使用,为0则表示该版块已经过期了或者没有被使用了)。如下即为广告E-R图:图5.5 广告实体E-R图6公告实体公告实体包括:公告id、用户id、公告名称、公告内容、创建时间、状态。其中公告id唯一标识一个公告。用户id关联一个用户,状态也是用于标识该公告是否还是处于使用状态(当状态为1时候表示还在使用,为0则表示该版块已经过期了或者没有被使用了)。如下即为公告实体的E-R图:图5.6 公告实体E-R图其中,所有的实体之间整体的E-R模型如下:图5.7 实体之间E-R图5.3 数据库的逻辑设计通过前面的概要设计我们已经对于整个数据库有一个大概的了解了,可以根据数据库的概要设计创建一个相应的数据库和在数据库中建立相应的表。以下为数据库和数据库中相应的表层次结构:图5.8 数据库与表关系图本系统共有六个表,以下将一一介绍其详细的数据字典。User(用户信息表)用户信息表包含了注册该论坛用户的所有相关信息,而且在注册时候我们一般规定注册的用户都是普通用户,如果需要给该用户赋予版主的权限将需要到后台数据库中去修改。用户信息表数据字典如下:表5.1 用户表用户表user字段名字段说明字段类型字段长度字段描述备注user_id唯一标识int11主键自动增长user_name用户姓名varchar20不为空user_pwd登录密码varchar20不为空user_email用户邮箱varchar20user_tellphone手机号varchar20user_qq用户QQvarchar20user_sex用户性别varchar4user_status用户等级int11权限字段用于标识用户身份的字段注意:表中字段名都是小写。字段user_status用于标识用户身份的字段,我们在项目中,用1表示论坛系统管理员,2表示论坛某一个板块的版主,3表示注册论坛的普通用户。Plate(版块表)版块表主要是包含了一些版块的基本信息,版块id是唯一标识该表的字段,而且其表中含有了关联该用户的字段,表示是该用户创建的帖子。而parent_id则表示该版块是否是一级版块还是二级版块。若是parent_id为0则表示是一级版块,否则则表示二级版块。表5.2 版块表版块表plate字段名字段说明字段类型字段长度字段描述备注plate_id唯一标识int11主键自动增长user_id用户idint11外键关联user表的字段parent_id父节点idint11为0标识一级版块plate_name版块名称varchar50plate_content版块内容varchar500plate_date版块创建时间timestamp0版块的创建时间plate_status版块状态int11用1标识在用,0已经停用Topic(主帖表)主帖表主要包含了一些有关主帖的信息,主帖id用于唯一标识该主帖的字段,plate_id和user_id则分别关联版块和用户。表5.3 主帖表主帖表 topic字段名字段说明字段类型字段长度字段描述备注topic_id唯一标识int11主键自动增长plate_id版块idint11外键关联plate表的字段user_id用户idint11外键关联user表的字段topic_name主帖名称varchar50topic_content主帖内容varchar500topic_date主帖创建时间timestamp0topic_status主帖状态int11用1标识该主帖在用,0标识已经停用Reply(回帖表)回帖表主要包含了一些有关回帖的信息,回帖id唯一表示该回帖的字段,user_id和topic_id则分别关联了用户和主贴。表5.4 回帖表回帖表 reply字段名字段说明字段类型字段长度字段描述备注reply_id唯一标识int11主键自动增长user_id用户idint11外键关联user表的字段topic_id主帖idint11外键关联topic表的字段reply_content回帖内容varchar500reply_date回帖时间timestamp0reply_status回帖状态int11用1标识回帖在用,0标识已经停用Advertise(广告表)广告表主要包含了一些有关的广告信息。其中advertise_id用于为以标识该广告的字段。user_id关联用户。表5.5 广告表广告表advertise字段名字段说明字段类型字段长度字段描述备注advertise_id唯一标识int11主键自动增长user_id用户idint11外键关联user表的字段advertise_name广告名称varchar50advertise_content广告内容varchar500advertise_date广告创建时间timestamp0advertise_status广告状态int11Anotice(公告表)公告表主要包含一些公告的相关信息。其中anotice_id用于标识该公告的字段。user_id关联用户。表5.6 公告表公告表anotice字段名字段说明字段类型字段长度字段描述备注anotice_id唯一标识int11主键自动增长user_id用户idint11外键关联user表的字段anotice_name公告名称varchar50anotice_content公告内容varchar500anotice_date公告创建时间timestamp0anotice_status公告状态int11图5.9 数据库物理设计图6 BBS论坛的详细设计与实现由于系统的页面也相对比较多,因此,现在只将系统的重点设计与实现页面介绍如下。6.1 系统整体功能模块介绍(1)用户模块主要包含用户信息注册、修改用户休息、用户信息的完善、用户登录、查询。(2)版块模块版块模块是主界面中的主要页面,主要包括查询、添加版块、删除板块、修改版块。(3)主帖模块主帖的存在依附于版块,是在某个版块下面存在的某一个主题帖子,可以通过对某一个版块下面的主题帖子进行查询、增加、删除、更新。(4)回帖模块回帖的存在也是依附于我们的主题帖子,是对于某一个主题帖子进行查询、回复、修改、删除。(5)广告模块广告模块是存在于某个用户对于某一个广告进行查询、创建、修改、更新。(6)公告模块公告模块也是管理员对于论坛内部的一些新的公告进行通告,从而查询、添加、删除、修改。6.2 功能界面该系统的主要功能界面都采用了统一的界面设计风格,由于该论坛系统追求的风格是简洁、朴素风格,因此整体界面风格也很朴素实华。当一个用户进入到该论坛的时候主页显示如下:图6.1 系统首页当一个游客进入到该论坛的时候若是他(她)对该论坛的帖子有兴趣可以进入到相应的plate下的帖子查
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铜冶炼厂环保法律法规实施跟踪分析报告
- 2025年宁陵县辅警考试练习题库(含答案)
- 2026届福建省三明市三明第一中学高一化学第一学期期中经典试题含解析
- 干细胞培训课件
- 2025-2030中国新型电力系统行业运营状况及发展潜力研究报告
- 2026届重庆市江津区第六中学高三化学第一学期期末考试试题含解析
- 2026届江苏省常州市前黄高中高一化学第一学期期末考试试题含解析
- 常德消防知识培训课件讲座
- 2026届四川省甘孜市化学高二上期末质量检测试题含答案
- 河北省唐山市古冶区2024-2025学年下学期八年级期末英语试题(含笔试答案无听力音频及原文)
- 全国高校辅导员素质能力大赛试题(谈心谈话、案例分析)
- 心功能不全病人的护理查房
- 地理与生活密切相关
- 氧气吸入疗法及护理
- 2025年中国电信河南分公司招聘笔试参考题库含答案解析
- (DB45T 2149-2020)《公路边坡工程技术规范》
- 金笔作文四级第4课省公开课获奖课件市赛课比赛一等奖课件
- 牧场物语-矿石镇的伙伴们-完全攻略
- DB3305-T 227-2022“两山银行”建设与运行管理指南
- 食品经营安全管理制度目录
- 《不孕症》教案课件
评论
0/150
提交评论