毕业论文之基于Ajax的BBS网站_第1页
毕业论文之基于Ajax的BBS网站_第2页
毕业论文之基于Ajax的BBS网站_第3页
毕业论文之基于Ajax的BBS网站_第4页
毕业论文之基于Ajax的BBS网站_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/引言随着互联网的开展,网民数量的极具增加,信息交互的重要性渐渐的表达出来。为满足众多网民的需要,出现了电子邮件等信息交互平台。这些信息交互平台大多存在信息发布不及时,查看不方便,公开程度低或难以公开,难以引起大范围的讨论交流等局限因素。BBS(电子公告板)网站在很大程度上解决了这些问题,为信息的交互提供了极大的便利,并在很大程度上保证了信息的发布、更新、传播的及时性,渐渐成为网民们交流的主要平台。BBS(电子公告板)在国内一般称作网络论坛,早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充,我们可以通过BBS进行交换信息、讨论话题、共享资源等。随着用户需求的不断提升,传统的BBS已经不能够满足需求,传统的BBS只有当用户主动刷新页面时才能更新出新的“更新〞内容,而用户需要的是当有内容更新时,客户端就响应出来无需刷新整个页面。AJAX的诞生满足了用户的这一需求,也将BBS推向了更广阔的开展空间。 本课题是名为“基于AJAX的BBS网站的设计〞,围绕AJAX在BBS网站中的应用和开展前景进行讨论,并完成名为“达人公社〞基于AJAX的BBS网站的实例,对AJAX在BBS中的应用进行实践。本实例网站采用Java和Oracle作为开发工具,tomcat作为效劳器支持,应用AJAX技术提高用户体验。

第1章绪论1.1课题的背景及意义随着互联网的开展,网民数量的极具增加,信息交互的重要性渐渐的表达出来。为满足众多网民的需要,出现了电子邮件等信息交互平台。这些信息交互平台大多存在信息发布不及时,查看不方便,公开程度低或难以公开,难以引起大范围的讨论交流等局限因素。BBS(电子公告板)网站在很大程度上解决了这些问题,为信息的交互提供了极大的便利,并在很大程度上保证了信息的发布、更新、传播的及时性,渐渐成为网民们交流的主要平台。随着用户需求的不断提升传统的BBS已经不能够满足需求,传统的BBS只有当页面刷新时才能更新出新的“更新〞内容,而用户需要的是当有内容更新时,客户端就响应出来无需刷新页面。AJAX的诞生满足了用户的这一需求,也将BBS推向了更广阔的开展空间。本课题的研究,对AJAX的工作过程和网站数据交互有一定的实践意义。1.2系统开发的环境及开发模式(1)硬件配置及外围设备配置硬件环境:硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。本系统开发硬件环境配置如表1-1所示:表1-1系统开发硬件环境根本配置表部件参数厂商处理器CoreI5480英特尔主板华硕K42JY华硕硬盘ST9500G希捷显卡ATI1G华硕内存2G尔必达(2)系统开发模式—B/S模式本系统基于互联网,而B/S,即Browser/Server模式是一种非常适宜的体系结构,客户端采用浏览器,WEB效劳器采用Windows7+Tomcat,数据库效劳器采用Windows7+Oracle效劳器,并通过JDBC与数据库连接,WEB效劳器平台采用FreeMarker技术。WEB效劳器作为中间层效劳器,单独放置在一台主机上隔离外界与数据库,起到了信息效劳器和防火墙的作用。采用B/S网络结构具有以下优点:一、简化了客户端,只需在客户端安装浏览器软件(IE或火狐或其他浏览器),不用在不同的客户端上安装不同的客户运用程序。二、简化了系统的开发和维护,B/S结构的所有功能都在WEB效劳器上实现,使开发和维护工作大大减少。三、用户的操作使用更加简单。四、网上的信息发布更加便利。(3)B/S模式的三层结构B/S(Browser/Server)即浏览器/效劳器结构的简称。从图1-1的B/S结构图来看,该结构的核心是中间层效劳器,包括WEB效劳器和相关的接口程序。WEB效劳器负责接收WEB浏览器的WEB页请求和数据请求,并处理WEB页请求。数据库接口程序将数据请求转换成数据库效劳器能够接受的形式(如SQL),并送到数据库效劳器。在数据库效劳器根据数据请求执行相应的数据库操作(如查询、修改、统计等)后,数据库接口程序再将数据结果转换送回WEB效劳器。WEB效劳器将结果处理成WEB浏览器能够接受的形式(如HTML)后,发送WEB浏览器。WEB浏览器解释执行结果并将其显示出来[6]。图1-1Browser/Server模式的三层分布结构图

第2章采用技术与实现方法2.1FreeMarker简介FreeMarker是一个采用Java开发的模版引擎,是一个基于模版生成文本通用工具。FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,并通过模板显示准备的数据(如下列图)。图2-1FreeMarker工作原理FreeMarker非常简单,只需要一个

Freemarker.jar

文件(无需任何配置文件)即可包含所有的功能,但

FreeMarker

的功能却非常的强大,主要应用有自定义宏、自定义函数、自定义模版文件加载、缓存处理、异常处理。2.2Struts2简介 Struts2是Struts社区和WebWork社区的共同成果,也可以说Struts2是WebWork的升级版,它采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。在Struts2中,模型-视图-控制器模式通过五个核心组件来实现,即Action、拦截器、值栈/OGNL、结果类型、结果/视图技术(JSP、freemarker等)。Struts2的工作原理图如下:图2-2Struts2的工作原理图2.3Hibernate简介Hibernate是一个开放源代码的HYPERLINK对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵HYPERLINK数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate操作数据库模型如下列图所示(比照JDBC)。图2-3JDBC和hibernate操作数据比照图2.4Spring简介Spring是一个开源框架,是为了解决企业HYPERLINK应用程序开发复杂性由RodJohnson创立的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用根本的JavaBean来完成以前只可能由EJB完成的事情。Spring的用途不仅限于效劳器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring容器模型如下列图所示:图2-4Spring容器模型图2.5Oracle简介Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/效劳器(CLIENT/SERVER)体系结构的数据库之一。主要有以下特点:(1)ORACLE7.X以来引入了共享SQL和多线索效劳器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。(2)提供了基于角色(ROLE)分工的平安保密管理。在数据库管理功能、完整性检查、平安性、一致性方面都有良好的表现。(3)支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。(4)提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如POWERBUILD、SQL*FORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。(5)提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。2.6AJAX简介AJAX(AsynchronousJavaScriptandXML)就是异步执行的JavaScriptandXML,它的核心是XMLHttpRequest,是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。它带给用户的体验就是页面无刷新。最简单的应用象提交留言,点击确定按钮时就出现的友好提示。AJAX不是一种语言。实际上,它由几种蓬勃开展的技术以新的强大方式组合而成。AJAX包含:(1)基于HYPERLINKXHTML和HYPERLINKCSS标准的表示。(2)使用HYPERLINKDocumentObjectModel进行动态显示和交互。(3)使用XMLHttpRequest与效劳器进行异步通信。(4)使用JavaScript绑定一切。AJAX的核心是JavaScript对象XmlHttpRequest。该对象在InternetExplorer5.0中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向效劳器提出请求并处理响应,而不阻塞用户。

第3章系统需求分析3.1网站总体需求通过使用体验论坛网站和用户调查,得到BBS网站的总体需求如下:(1)为用户建立方便快捷,简单易用的信息发布、交流、搜索的BBS网站。(2)提供用户注册登录功能。(3)提供用户帖子查看、帖子搜索、新闻查看功能。(4)提供注册用户帖子发表、回复功能,并可对帖子以及个人资料进行维护。(5)提供网站“后台管理系统〞,供系统用户(以下称管理员)使用,分类管理站内资源。(6)提供管理员帖子分类管理功能并可对帖子进行审核、搜索、置顶、取消置顶、屏蔽等操作。(7)提供管理员用户管理,人员管理,业务管理,新闻管理,资料维护等功能。(8)BBS网站要求资源丰富,信息更新及时,用户响应及时,尽量减少效劳器压力,提供较好的用户体验,操作方便简单易用。

3.2系统功能分析BBS论坛网站是提供用户交流的一个平台,主要用于发布信息,交流讨论。同时提供后台管理平台,实现对网站注册用户,网站资源进行管理。本案例名为“达人公社BBS〞主要提供以下功能(1)帖子(话题)发表和回复功能,BBS是一个互动交流的平台,信息的发布是交流的前提。此功能为BBS网站的根本功能,在本实例中此功能只对注册用户提供。(2)用户(注册用户)帖子管理功能,用户可以对自己所发表的帖子进行管理,包括查看、删除功能。(3)用户个人资料管理,用户(注册用户)可以对自己的注册信息进行修改,保存。(4)帖子、新闻搜索功能,用户可以通过搜索框对站内帖子和用户进行搜索。(5)用户登录注册,用户可以通过注册,成为本站会员。用户登录系统后可享有更高的操作权限(6)会员管理,管理员用户可对注册会员进行审核,查看,注销。(7)帖子管理,管理员可对站内帖子进行审核,注销,置顶,取消置顶,搜索,查看。(8)管理员管理,高级管理员可对管理权限低于自身的管理员进行管理,添加管理员,修改管理员信息,注销管理员。(9)其他工作人员管理,管理员可以对网站其他工作人员的信息进行管理。(10)网站业务管理,管理员可对网站业务进行添加,删除,修改,主要实现业务数据管理。(11)站内新闻管理,管理员可对网站新闻进行管理,新闻发布,查看,删除。3.3系统业务流程描述系统业务流程是系统业务的活动过程。系统活动过程也是组织实体围绕着实现组织的某些目标的活动过程,在系统流程中伴随着组织中大量的信息流。但所有的实体流最终都要反映为能够被人们接收和处理的信息流。系统流程分析是系统分析中一个很重要的内容。只有对系统流程进行深入分析,才能够深入地理解系统的活动过程,了解系统活动所涉及到的各种组织实体,了解系统的过程、步骤、规则和方法。达人公社BBS业务流程图如下:图3-1业务流程图1图3-2业务流程图23.4系统数据流程分析数据流程分析是数据分析的最重要的一步,是对系统业务逻辑进一步的分析,是系统功能实现的基础。数据流程分析是把数据在原系统内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程考查实际业务的数据处理模式。数据流图是描述新系统数据输入、数据输出、数据存储及数据处理之间关系的一种强有力的工具,也是与用户进行紧密配合的有效媒介。本系统的数据流图如下列图所示:图3-3顶级数据流图图3-4一级数据流图(1)图3-4一级数据流图(2)图3-4二级数据流图(1)图3-5二级数据流图(2)

第4章系统设计4.1系统总体结构设计达人公社BBS的浏览权限对所有用户开放,对用户的发帖和帖子回复操作进行限制,仅限于注册用户。为对网站进行有效的管理,提供后台管理系统,供管理员对网站数据进行维护。达人公社BBS主要有以下功能模块:用户模块:帖子搜索、浏览、发表、回复、新闻浏览、个人资料修改、保存管理模块:帖子管理,帖子审核、搜索、屏蔽、置顶、取消置顶、注销用户管理,用户审核、收索、注销新闻管理,新闻发布、查看、注销业务管理,业务登记、查看、注销人员管理,权限管理、登记、查看、资料修改、注销系统结构如下列图所示:图4-1系统结构图4.2系统数据库设计4.2.1概述数据库是信息系统的基础和核心,数据库设计的质量将直接关系到系统开发的成败和优劣。在信息系统中,数据库设计是指根据业务需求、信息需求和处理需求,确定信息系统中数据库结构、数据操作和数据一致性约束的过程。数据库设计的根本过程可分为需求分析、概念设计、逻辑设计和物理设计四个步骤,见图4-2。在信息系统的开发中,一般不就数据库设计专门进行需求分析,而是在系统分析的需求分析阶段一并考虑。概念设计的任务是确定数据库的结构,确定从不同用户角度看到的外模式,并把外模式集成为全局模式。逻辑设计把概念设计得到的全局模式转换成为所选择的数据库模型,并进行优化处理。图4-2数据库设计的根本过程图4.2.2概念设计概念设计是针对现实世界,通过对其中信息实体的收集、分类、聚集和概括,建立数据库概念结构的过程。通常用实体-联系图(E-R图)作为概念设计的工具。

(1)工作人员E-R图管理员在对工作人员进行管理时,要从工作人员信息表中取数据,工作人员E-R图如下:图4-3工作人员子E-R图(2)系统用户E-R图管理员登录,高权限的管理员对低权限管理员进行管理时都要从系统用户表中存取数据,系统用户E-R图如下所示:图4-4系统用户子E-R图(3)回复信息E-R图当用户在对帖子进行预览时,如果该贴有回复信息,则要从回复信息表中取出所有该贴的回复信息。当用户回复某一个帖子时,要向回复信息表中插入回复信息记录,回复信息E-R图如下:图4-5回复信息子E-R图(4)系统公共类型E-R图系统公共类型提供了系统中所有类别属性,如管理权限、帖子类别、业务种类等网站内公用的属性,在主要的信息中都可能用到该表,系统公共类型E-R图如下:图4-6系统公共类型子E-R图(5)系统字典E-R图系统字典是系统公共类型的子表,用来存储各个类型的字典值,系统字典E-R图如下:图4-7系统字典子E-R图(6)新闻信息E-R图管理员在信息发布,修改,查看,注销时都要对新闻信息表进行数据存取操作,新闻信息E-R图如下:图4-8新闻信息子E-R图(7)业务信息E-R图:业务信息表是用来存放网站业务数据的,管理员在添加、修改、查看、注销业务时都要对业务信息表进行存取操作,业务信息E-R图如下:图4-9业务信息子E-R图

(8)用户信息E-R图用户信息表中存储网站用户的根本信息和状态信息,用户注册、登录、发帖、回帖都要对用户信息表进行操作,用户信息E-R图如下:图4-10用户信息子E-R图(9)帖子信息E-R图帖子信息表用来存储用户帖子信息,在用户发帖,修改帖子和管理员审核帖子都需要对帖子信息表进行存取操作,帖子信息E-R图如下:图4-11帖子信息子E-R图

(10)系统模块E-R图系统字典和系统公共类型两个表是系统表,是系统属性,系统字典表通过字典类型与系统公共类型关联,联系类型为多对一(N:1)用(Z.L)表示,E-R图如下:图4-12系统模块E-R图(11)用户发帖模块E-R图达人公社BBS中用户发帖主要涉及到用户、帖子、系统字典、系统用户四个实体,分别对应用户信息表、帖子信息表、系统字典表、系统用户表,其中用户和帖子是一对多(1:N)的关系用,用(U.I)表示;帖子与系统用户是多对一(N:1)关系,用(I.S)表示;帖子与系统字典为多对一(N:1)的关系用(I.Z)表示,该模块的E-R图如下所示:图4-13用户发帖模块E-R图

(12)帖子回复模块E-R图达人公社BBS中用户帖子回复主要涉及到用户、帖子、回复信息三个实体,只存在多对一一种联系类型,其中用户和回复信息之间是一对多(1:N)联系用(U.H)表示,帖子和回复信息之间是一对多的联系(1:N)用(I.H)表示,该模块的E-R图如下所示:图4-14帖子回复模块E-R图(13)管理模块E-R图达人公社BBS中帖子管理、用户管理、新闻管理、业务管理模块都属于系统管理模块他们都只和系统用户存在联系而且都为多对一(N:1)的联系,下面用系统管理统一表示以上各个系统管理模块,关系名用X.S表示,系统管理模块E-R图如下所示:图4-15系统管理模块E-R图

(14)总体E-R图达人公社BBS共涉及到系统模块、帖子发表模块、帖子回复模块、系统管理模块,本系统总体E-R图如下:图4-16系统总体E-R图4.2.3逻辑设计逻辑设计是将现实世界的概念数据模型设计成为适应于特定数据库管理系统的逻辑数据模式。逻辑数据模式也被简称为逻辑模型或数据模式,关系数据库的数据模式是关系模式。如果数据库采用关系数据库,则需要把E-R图或类图描述的概念数据模型转换为等价的关系模式及其约束。达人公社BBS数据表的描述如下:(1)新闻信息表,新闻信息表用来存放站内新闻信息包括新闻编号、新闻标题、发布人、发布时间、新闻状态和新闻内容字段,新闻信息表描述如表4-1所示。表4-1新闻信息表列名数值类型长度默认值描述主键备注IDINTEGE新闻编号是唯一TITLECHAR80新闻标题否FBRINTEGER当前用户发布人否外键FBSJDATA系统时间发布时间否YXZTCHAR20新闻状态否CONTENTBLOB新闻内容否

(2)达人公社用户表,用户表用来存放网站注册用户根本信息和状态信息,包括用户编号、用户名称、用户账号、用户密码、密码提示、提示答案、邮箱、性别、生日、注册日期、有效状态、个性签名、权限、审核状态、审核人id、用户积分字段,达人公社用户表如表4-2所示。表4-2达人公社用户表列名数值类型长度默认值描述主键备注IDINTEGER用户编号是唯一NAMECHAR50CODE用户名称否CODECHAR50用户账号否PASSWORDCHAR50用户密码否MMTSWTCHAR200密码提示否MMTSWTDACHAR200提示答案否EMAILCHAR200邮箱否SEXCHAR2性别否BOTHDAYDATE生日否ZCRQDATE系统时间注册日期否YXZTCHAR20有效状态否WORDSCHAR200个性签名否QXINTEGER权限否外键SHZTCHAR21审核状态否SHRIDINTEGER当前用户审核人ID否外键ZHXGRIDINTEGER当前用户修改人id否外键JFINTEGER0用户积分否(3)公社业务表,业务表用来存放网站业务信息,包括业务编号、业务名称、业务类型、客户名称、客户单位、客户联系方式、受理人、受理日期、截止日期、有效状态、业务描述字段,公社业务表如表4-3所示。表4-3公社业务表列名数值类型长度默认值描述主键备注IDINTEGER业务编号是唯一YWMCCHAR60业务名称否YWLXINTEGER业务类型否KHMCCHAR30客户名称否KHDWCHAR200客户单位否KHLXFSCHAR40联系方式否SLRINTEGER当前用户受理人否外键SLRQDATE系统时间受理日期否YWJZRQDATE截止日期否YXZTCHAR20有效状态否YWMSNVARCHAR2500业务描述否

(4)回复信息表,回复信息表用来存放帖子的回复信息,包括回复编号、帖子id、回复内容、回复人id、回复时间字段,帖子回复信息表描述如表4-4所示。表4-4回复信息表列名数值类型长度默认值描述主键备注IDINTEGER回复编号是唯一TZ_IDINTEGER帖子id否外键HFNRBLOB回复内容否HFR_IDINTEGER回复人id否外键HFSJDATE系统时间回复时间否(5)帖子信息表,包括帖子id、标题、类别、关键字、发帖人、发帖时间、帖子内容、回复次数、审核人、置顶时间、置顶标记,帖子信息表描述如表4-5所示。表4-5帖子信息表列名数值类型长度默认值描述主键备注IDINTEGER帖子编号是唯一TITLECHAR80标题否TZLBINTEGER类别否KEY_WORDSCHAR60关键字否FTR_IDINTEGER发帖人id否外键FTSJDATE发帖时间否CONTENTBLOB帖子内容否TZZTCHAR21审核状态否YXZTCHAR20有效状态否TZLLCSINTEGER0浏览次数否TZHFCSINTEGER0回复次数否SHRIDINTEGER当前用户审核人否外键ZDSJDATE系统时间置顶时间否ZDBJCHAR1置顶标记否(6)系统用户表,系统用户表用来保存网站管理信息包括编号、名称、账号、密码、有效状态、联系方式、性别、授权日期、注销日期、管理权限、备注字段系统用户表描述如表4-6所示。表4-6系统(管理员)用户表列名数值类型长度默认值描述主键备注IDINTEGER编号是唯一NAMECHAR50名称否CODECHAR50账号否PASSWORDCHAR50密码否YXZTCHAR20有效状态否LXFSCHAR40联系方式否SEXCHAR2男性别否SQRQDATE系统时间受权日期否ZXRQDATE系统时间注销日期否GLQXINTEGER当前用户管理权限否外键BZCHAR500备注否

(7)工作人员信息表,工作人员信息表用来保存网站工作人员信息,包括人员编号、名称、性别、身份证号、籍贯、联系方式、职责、入职日期、登记日期、有效状态字段,工作人员信息表描述如表4-7所示。表4-7工作人员信息表列名数值类型长度默认值描述主键备注IDINTEGER人员编号是唯一NAMECHAR20名称否XBCHAR2男性别否SFZHMCHAR30身份证号否JGCHAR60籍贯否LXFSCHAR30联系方式否ZZINTEGER职责否RZRQDATE入职日期否DJRQDATE登记日期否YXZTCHAR20有效状态否(8)系统公共类型表,系统公共类型用来存放网站数据类型,便于数据分类管理,包括类型编号、类型代码、类型名称描述如表4-8所示。表4-8系统公共类型表列名数值类型长度默认值描述主键备注IDINTEGER类型编号是唯一LXDMINTEGER类型代码否LXMCCHAR200类型名称否(9)系统字典表,系统字典表用来存放网站数据类型所包含的值,包括字典编号、类型代码、字典值字段,系统字典表描述如表4-9所示。表4-9系统字典表列名数值类型长度默认值描述主键备注IDINTEGER字典编号是唯一LXDMINTEGER类型代码否外键ZD_KEYCHAR100字典值否

4.3系统功能模块设计本系统主要有用户模块和后台管理模块,用户模块包括用户登录,用户注册,用户信息管理,帖子发表,帖子回复模块,后台管理模块包括帖子管理,用户管理,新闻管理,个人信息管理,业务管理,人员管理。系统模块图如下:图4-17系统功能模块图

第5章系统实现5.1系统主要模块实现及详细设计(1)网站导航网站导航包含网站标题“达人公社BBS〞,用户登录、站内搜索功能模块,我的中心、业务咨询、客服中心、个人中心、达人公约、用户注册功能接口,达人公社BBS网站导航如图5-1所示。图5-1网站导航图 用户登录是用户进行个人资料管理、帖子发表、帖子回复、帖子管理的前提,为保证用户数据的平安性,为用户提供更多的操作权限,网站需要对用户权限进行验证。用户在登录网站时需要输入登录信息,提交后系统会对用户的登录信息进行验证,若登录失败系统提示错误信息,并给出处理意见,否则显示用户登录信息,并在效劳器端保存用户登录信息,登录操作结束。登录过程中用户登录信息验证采用AJAX技术,若用户输入登录信息错误,提示用户登录失败,并保持原页面不刷新。若用户登录成功,将局部刷新用户登录模块,并保持其他模块不刷新。AJAX向效劳器提交登录信息,并返回登录结果的核心代码如下:$("#dl_bt").click(function(){if($("#zh").val()==""||$("#zh").val()=="输入账号"){alert("账号不可为空!");return;}if($("#mm").val()==""){alert("密码不能为空!");return;}$.post("login",{name:$("#zh").val(),password:$("#mm").val()},function(data){if("false"==data){alert("该账号已登录");}elseif("failure"==data){alert("用户名或密码错误,请重新输入!");}});用户登录数据流程如图5-2所示:图5-2用户登录流程图

为方便用户使用网站资源而设计了站内搜索模块,用户可以通过该模块快速的找到想要的资源。用户在搜索资源时需填写搜索关键字,并选择搜索条件,搜索用户或帖子,点击搜索即可提交效劳器查找,并显示查找结果。搜索结果如图5-3所示。图5-3帖子搜索结果图用户搜索(搜索帖子,搜索用户同理只是查找不同数据表)核心代码如下:publicPage<Invitation>findAlltz(IntegerpageSize,IntegerpageNo,Stringitems){Page<Invitation>page=newPage<Invitation>();page.setPageNo(pageNo);page.setPageSize(pageSize);Stringhql=null;if("zrt".equals(items)){hql="fromInvitationtzwheretz.yxzt=0andtz.tzzt=0orderbytz.tzllcsdesc";}elseif("zxt".equals(items)){hql="fromInvitationtzwheretz.yxzt=0andtz.tzzt=0orderbytz.ftsjdesc";}else{hql="fromInvitationtzwheretz.yxzt=0andtz.tzzt=0andtz.titlelike'%"+items+"%'orderbytz.ftsjdesc";}try{page=this.tzdao.find(page,hql);page.setTotalCount(this.tzdao.find(hql).size());}catch(Exceptione){System.out.println(e.getStackTrace().toString());System.out.println("查找帖子失败!");}returnpage;}用户搜索数据流程如图5-4所示:

图5-4用户搜索流程图

(2)用户注册用户注册是用户成为网站会员,享有更多操作权限的前提,用户只有注册以后才可以进行个人资料管理、个人帖子管理、帖子发表、帖子回复操作。用户在注册为网站会员时需要填写注册资料,同意网站效劳条款,提交注册信息完成注册。在用户填写注册信息时,采用AJAX技术对用户信息进行验证,若发现错误则在相应条款后面以红色字体提示用户信息输入错误,并阻止用户提交注册信息,全部信息填写符合条件以前方可提交注册信息完成注册,用户注册界面如图5-5所示。图5-5用户注册界面用户注册信息验证代码如下:$("#username").blur(function(){if($("#username").val()==""){$("#name_yz").show();zc_flag=1;}else{$.post("nameCheck",{name:$("#username").val()},function(data){if("has"==data){$("#name_yz").show();zc_flag=1;}else{$("#name_yz").hide();zc_flag=0;}});}});$("#zc").click(function(){if($("#tk").attr("checked")){if($("#username").val()==""||$("#password").val()==""||$("#password2").val()==""||$("#mmtswt").val()==""||$("#mmwtda").val()==""){zc_flag=1;}if(zc_flag==1){alert("选项填写错误,不可注册!");return;}else{$("#yhzc").attr("action","saveUser").submit();}}else{alert("只有同意本站效劳条款后才可以进行注册会员");return;}});用户注册流程如图5-7所示:图5-6用户注册流程图

(3)帖子发表帖子发表是BBS网站的根本功能,是用户发表话题的根本途径,帖子发表功能只对网站会员提供。用户在发表帖子时,需要按要求填写帖子标题,帖子标题长度不得超过80个字符,帖子内容不可为空,当用户点击发表时,会对用户身份进行验证(身份验证采用AJAX技术),若用户未登录,则提示用户登录,并阻止用户发表帖子,当用户帖子发表成功以后帖子将变为待审贴,当管理员审核后,该贴才可被搜索、查看、回复,帖子回复界面如图5-7所示。图5-7帖子发表例图帖子发表核心代码:$("#save").click(function(){vareditor=$("#content").xheditor();$("#content").val($.trim(editor.getSource()));varoption={url:"${base}/drgsuser/savetz",success:function(data){if(data!="failure"){if(confirm("是否继续发帖?")){window.location.reload();}else{window.open("/drgsuser/tzll?tzid="+data,'','');}}else{alert("由于帖子中含有非法字符,该贴不能发表!");return;}}};@Action("authCheck")publicvoidauthCheck(){if(null==session.get("user")){super.renderText("false");}else{super.renderText("true");}}帖子发表流程如图5-8所示:图5-8帖子发表流程图(4)帖子回复帖子回复是用户进行交流、讨论、互动的另一个重要途径。用户点击浏览某一个帖子时可以对该帖进行回复,用户点击页面上回复按钮即可定位到回复信息输入框,回复信息不可为空,在用户点击发表按钮时会对此条约束进行检查同时会对用户权限进行检查,如果用户尚未登录则提示用户登录并阻止用户发表回复信息,否则显示用户回复信息,帖子回复界面如图5-9所示。图5-9帖子回复例图帖子回复核心代码如下:$("#fb").click(function(){vareditor=$("#content").xheditor();$("#content").val($.trim(editor.getSource()));if($("#content").val()==""){alert("回复内容不能为空!");return;}else{varcontent=$("#content").val();varusername=$("#username").val();$("#content").val("");$.post("authCheck",{name:"unlogin"},function(data){if("false"==data){alert("您尚未登录,请先登录!");$("#zh").focus;return;}@Action("authCheck")publicvoidauthCheck(){if(null==session.get("user")){super.renderText("false");}else{super.renderText("true"); }}帖子回复流程如图5-10所示:图5-10帖子回复流程图

(5)个人中心个人中心是提供应注册用户对用户资料进行管理的平台,主要包括帖子管理,个人中心(个人资料)的管理,用户可以删除已发贴,可以查看修改个人资料,用户帖子管理界面如图5-11所示,用户个人资料管理如图5-12所示。图5-11帖子管理例图图5-12个人资料管理例图

(6)管理员登录管理员登录,是管理进行网站管理的前提,为了保障网站数据的平安和管理员有效行使网站管理权限,需要对管理员权限进行验证。管理员在登录时需要完整输入账号和密码,账号和密码不可为空,管理员点击登录时会对输入账号和密码进行验证(采用AJAX技术),若账号或密码错误系统将给出提示,并要求重新输入,否则进入后台管理系统,管理员登陆界面如图5-13所示。图5-13管理员登陆例图管理员登录核心代码:$(document).ready(function(){$("#ok").click(function(){if($("#code").val()==""||$("#password").val()==""){alert("用户名或密码为空!");return;}else{$.post("logValidate",{code:$("#code").val(),password:$("#password").val()},function(data){if("success"==data){$("#log").submit();}else{alert(data);}});}});});管理员登录流程如图5-14所示:图5-14管理员登录流程图

5.2系统其他模块设计及功能简介(1)业务管理业务管理提供管理员对网站业务管理功能,管理员可以通过此模块添加业务、查看业务、修改业务、注销业务、查看业务历史。网站业务界面如图5-15所示。图5-15网站业务例图(2)人员管理人员管理包括管理员管理,和网站工作人员管理,管理员可以通过人员管理平台对网站工作人员进行有效的管理,权限管理,添加人员,查看人员,注销人员等日常维护操作,网站人员管理界面如图5-16所示。图5-16人员管理例图

(3)会员管理会员管理包括新注册会员管理和已注册会员管理,管理员通过会员管理平台,对网站会员进行管理,包括会员审核、查看会员信息、修改会员信息、会员搜索、注销会员操作,会员管理界面如图5-17所示。图5-17会员管理例图(4)帖子管理帖子是BBS网站的主要数据来源,数据量最大,最复杂。帖子管理平台为帖子数据提供了有效的管理平台,提供帖子审核、帖子审核、帖子查看、帖子置顶、帖子屏蔽、帖子搜索功能,帖子管理界面如图5-18所示。图5-18帖子管理例图

结论与展望通过本次毕业设计完成“基于AJAX的BBS网站的设计〞的课题实例“达人公社BBS〞,本实例是一个普通的BBS论坛网站,只提供用户注册登录,帖子发表,帖子回复,和简单的搜索,管理功能,并提供一个简易的后台管理系统,供管理员对网站数据进行管理。通过对“天涯〞、“猫扑〞、“CSDN〞、“百度〞、“安工在线〞等论坛实际使用体验完成BBS网站的需求分析并完成对业务流程的分析总结,完成网站的原型设计,通过近两个月的开发工作根本实现了BBS网站的常用功能。主要实现了帖子发表,帖子回复,帖子及其他信息浏览,网站后台数据管理功能。本案例使用了Java主流开发框架SSH集成框架,遵循分层的设计思想,并采用JavaScript作为客户端脚本,使用AJAX技术增强用户体验,页面设计简单大方,操作方便。但是还存在以下缺陷与缺乏:(1)、网站个人中心模块展现形式不佳,由于受时间限制,未作进一步调整。(2)、由于达人公社BBS网站局部功能还有待完善,数据库在设计时的局部字段没有被利用,会造成数据冗余,影响数据库数据处理效率。(3)、数据的平安性工作做的不到位,需要一定的加强,数据处理功能还有待完善。通过本次毕业设计加深了我对Java的web应用的认识,对相关课程知识进行了一次梳理,熟悉了AJAX技术,同时对SSH集成框架有了一个初步的认识,并能够应用SSH集成框架进行简单的应用开发。在整个毕业设计过程中从分析、设计、实现、总结一个完整的工程流程中学到了很多东西,使我各方面的能力都得到一定程度的提升。

致谢通过三个月的系统分析设计、开发实现和论文撰写,毕业设计工作已经根本完成。在此过程获得了很多的帮助,使毕业设计任务得以顺利开展。感谢指导老师周文三个月以来的全面指导,不仅在就业方面给予了指导意见,在毕业工程的设计思路和论文的撰写方法标准方面都给予了很大的帮助,并提供了大量的原始资料,使我对毕业工程的业务流程和实现技术都有了较深的理解,为毕业工程的顺利进行做好了铺垫。再次感谢尹老师和周老师的辛勤指导,感谢同组其他同学在毕业设计期间完成了大量的题材搜集工作。 完成人:年月日

参考文献[1](美)DonaldBrown,ChadMichaelDavis,ScottStanlick著.HYPERLINK马召译.Struts2实战[J].北京:人民邮电出版社,2010年.[2]齐治昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社.2004年.[3](美)JasonPrice著.冯锐,由渊霞译.OracleDatabase10gSQL开发指南[M].北京:清华大学出版社,2005年.[4](美)CayS.Horstmann著.叶乃文,邝劲筠,杜永萍译.Java核心技术[M].北京:机械工业出版社,2006年4月.[5]闪四清,杨强.OracleDatabase10g基础教程(第二版)[M].北京:清华大学出版社,2007年.[6]杨毅.数据库系统原理及应用[M].北京:科学出版社,2011年1月.[7]刘聪.零基础JavaWebJSP+Servlet+Struts+Spring+Hibernate+AJAX[M].北京:机械工业出版社,2008年1月.[8](美)MichaelMcLaughlin著.HYPERLINK张云,王海涛译.OracleDatabase11gPL/SQL程序设计[M].北京:清华大学出版社,2009.4.[9]汪大乐.JavaWeb开发技术详解--JSP+AJAX+Struts[J].北京:科学出版社,2008年8月.[10]赵增敏.DreamveaverCS3AJAX网页设计入门实例详解[M].北京:电子工业出版社,2008年8月.[11]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2000.[12](美)MartyHall,LarryBrown,YaakovChaikin著.胡书敏译.Servlet与JSP核心编程(第2卷第2版)[M].北京:清华大学出版社,2009年6月.[13]HYPERLINK梁文新,HYPERLINK宋强,HYPERLINK王占中.AJAX+JSP网站开发从入门到精通[M].北京:清华大学出版社,2008年7月.[14]曾顺.精通CSS+DIV网页样式与布局[M].北京:人民邮电出版社,2007年8月.[15](美)StevenHolzner著.HYPERLINK陈秋萍译.HYPERLINKAJAXBible[M],人民邮电出版社,2007年11月.[16]JamesHolmes.HYPERLINKStruts:TheCompleteReference,2ndEdition[M].HYPERLINKMcGraw-HillOsborneMedia,2007.[17]JanMachacek,HYPERLINKAleksaVukotic,HYPERLINKAnirvanChakraborty,HYPERLINKJessicaDitt.HYPERLINKProSpring2.5[M].HYPERLINKApress,2009.[18]StevenHolzner.HYPERLINKAJAXBible[M].HYPERLINKWiley,2007.[19]CayS.Horstmann,HYPERLINKGaryCornell.CoreJava,VolumeI--Fundamentals(8thEdition)[M].HYPERLINKPrenticeHallPTR,2008.[20]LazaroIssiCohen,HYPERLINKJosephIssiCohen.ThewebProgrammer’sDeskReference[M].HYPERLINKNoStarchPress,2007.

附录附录A外文文献及其译文ThefourdefiningprinciplesofAJAXTheclassicbasedapplicationmodelishard-wiredintomanyoftheframe-worksthatweuse,andalsointoourwaysofthinking.Let’stakeafewminutestodiscoverwhatthesecoreassumptionsareandhowweneedtorethinkthemtogetthemostoutofAJAX.1.Thebrowserhostsanapplication,notcontentIntheclassicbasedwebapplication,thebrowseriseffectivelyadumbter-minal.Itdoesn’tknowanythingaboutwheretheuserisinthegreaterworkflow.Allofthatinformationisheldonthewebserver,typicallyintheuser’ssession.Server-sideusersessionsarecommonplacethesedays.Ifyou’reworkinginJavaor.NET,theserver-sidesessionisapartofthestandardAPI,alongwithrequests,responses,andMultipurposeInternetMailExtensions(MIME)types.Figure1.11illustratesthetypicallifecycleofaclassicwebapplication.Whentheuserlogsinorotherwiseinitializesasession,severalserver-sideobjectsarecreated,representing,say,theshoppingbasketandthecustomercre-dentialsifthisisane-commercesite.Atthesametime,thehomepageisdisheduptothebrowser,inastreamofHTMLmarkupthatmixestogetherstandardboilerplatepresentationanduser-specificdataandcontentsuchasalistofrecentlyvieweditems.Everytimetheuserinteractswiththesite,anotherdocumentissenttothebrowser,containingthesamemixtureofboilerplateanddata.Thebrowserduti-fullythrowstheolddocumentawayanddisplaysthenewone,becauseitisdumbanddoesn’tknowwhatelsetodo.Whentheuserhitsthelogoutlinkorclosesthebrowser,theapplicationexitsandthesessionisdestroyed.AnyinformationthattheuserneedstoseethenexttimesheorhelogsonwillhavebeenhandedtothepersistencetierbyFigure1.11Lifecycleofaclassicwebapplication.Allthestateoftheuser’s“conversation〞withtheapplicationisheldonthewebserver.Theuserseesasuccessionofpages,noneofwhichcanadvancethebroaderconversationwithoutgoingbacktotheserver.now.AnAJAXapplicationmovessomeoftheapplicationlogictothebrowser,asfigure1.12illustrates.Whentheuserlogsin,amorecomplexdocumentisdeliveredtothebrowser,alargeproportionofwhichisJavaScriptcode.Thisdocumentwillstaywiththeuserthroughoutthesession,althoughitwillprobablyalteritsappearanceconsid-erablywhiletheuserisinteractingwithit.Itknowshowtorespondtouserinputandisabletodecidewhethertohandletheuserinputitselfortopassarequestontothewebserver(whichhasaccesstothesystemdatabaseandotherresources),ortodoacombinationofboth.Becausethedocumentpersistsovertheentireusersession,itcanstorestate.Ashoppingbasket’scontentsmaybestoredinthebrowser,forexample,ratherthanintheserversession.Figure1.12LifecycleofanAJAXapplication.Whentheuserlogsin,aclientapplicationisdeliveredtothebrowser.Thisapplicationcanfieldmanyuserinteractionsindependently,orelsesendrequeststotheserverbehindthescenes,withoutinterruptingtheuser'sworkflow.2.Theserverdeliversdata,notcontentAswenoted,theclassicwebappservesupthesamemixtureofboilerplate,con-tent,anddataateverystep.Whenouruseraddsanitemtoashoppingbasket,allthatwereallyneedtorespondwithistheupdatedpriceofthebasketorwhetheranythingwentwrong.Asillustratedinfigure1.13,thiswillbeaverysmallpartoftheoveralldocument.AnAJAX-basedshoppingcartcouldbehavesomewhatsmarterthanthat,bysendingoutasynchronousrequeststotheserver.Theboilerplate,thenavigationlists,andotherfeaturesofthepagelayoutarealltherealready,sotheserverneedstosendbackonlytherelevantdata.TheAJAXapplicationmightdothisinanumberofways,suchasreturningafragmentofJavaScript,astreamofplaintext,orasmallXMLdocument.We’llFigure1.13Breakdownofthecontentdelivered(A)toaclassicwebapplicationand(B)toanAJAXapplication.Astheapplicationcontinuestobeused,cumulativetraffic(C)increases.lookattheprosandconsofeachindetailinchapter5.Sufficeittosayfornowthatanyoneoftheseformatswillbemuchsmallerthanthemish-mashreturnedbytheclassicwebapplication.InanAJAXapplication,thetrafficisheavilyfront-loaded,withalargeandcomplexclientbeingdeliveredinasingleburstwhentheuserlogsin.Subsequentcommunicationswiththeserverarefarmoreefficient,however.Foratransientapplication,thecumulativetrafficmaybelessforaconventionalwebpageappli-cation,butastheaveragelengthofinteractiontimeincreases,thebandwidthcostoftheAJAXapplicationbecomeslessthanthatofitsclassiccounterpart.

3.UserinteractionwiththeapplicationcanbefluidandcontinuousAwebbrowserprovidestwoinputmechanismsoutofthebox:hyperlinksandHTMLforms.HyperlinkscanbeconstructedontheserverandpreloadedwithCommonGatewayInterface(CGI)parameterspointedatdynamicserverpagesorservlets.TheycanbedressedupwithimagesandCascadingStyleSheets(CSS)toproviderudimentaryfeedbackwhenthemousehoversoverthem.Givenagoodwebdesigner,hyperlinkscanbemadetolooklikequitefancyUIcomponents.FormcontrolsofferabasicsubsetofthestandarddesktopUIcomponents:inputtextboxes,checkboxesandradiobuttons,anddrop-downlists.Severallikelycandidatesaremissing,though.Therearenoout-of-the-boxtreecontrols,editablegrids,orcombo-boxesprovided.Forms,likehyperlinks,pointatserver-sideURLs.Alternatively,hyperlinksandformcontrolscanbepointedatJavaScriptfunc-tions.It’sacommontechniqueinwebpagestoproviderudimentaryformvalida-tioninJavaScript,checkingforemptyfields,out-of-rangenumbers,andsoon,beforesubmittingdatatotheserver.TheseJavaScriptfunctionspersistonlyaslongasthepageitselfandarereplacedwhenthepagesubmits.Whilethepageissubmitting,theuseriseffectivelyinlimbo.Theoldpagemaystillbevisibleforawhile,andthebrowsermayevenallowtheusertoclickonanyvisiblelinks,butdoinsowillproduceunpredictableresultsandmaywreakhavocwiththeserver-sidesession.Theuserisgenerallyexpectedtowaituntilthepageisrefreshed,oftenwithasetofchoicessimilartothosethatweresnatchedawayfromthemsecondsearlier.Afterall,addingapairoftrouserstotheshop-pingbasketisunlikelytomodifythetop-levelcategoriesfrom“menswear,〞“women’swear,〞“children’s,〞and“accessories.〞Let’staketheshoppingcartexampleagain.BecauseourAJAXshoppingcartsendsdataasynchronously,userscandropthingsintoitasfastastheycanclick.Ifthecart’sclient-sidecodeisrobust,itwillhandlethis

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论