版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引言随着互联网的进展,网民数量的极具增加,信息交互的重要性慢慢的体现出来。为满足众多网民的需要,出现了电子邮件等信息交互平台。这些信息交互平台大多存在信息公布不及时,查看不方便,公开程度低或难以公开,难以引起大范围的讨论交流等局限因素。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是一个开放源代码的对象关系映射框架,它对JDBC进行了特不轻量级的对象封装,使得Java程序员能够为所欲为的使用对象编程思维来操纵数据库。Hibernate能够应用在任何使用JDBC的场合,既能够在Java的客户端程序使用,也能够在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate操作数据库模型如下图所示(对比JDBC)。图2-3JDBC和hibernate操作数据对比图2.4Spring简介Spring是一个开源框架,是为了解决企业应用程序开发复杂性由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)基于XHTML和CSS标准的表示。(2)使用DocumentObjectModel进行动态显示和交互。(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著.马召译.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著.张云,王海涛译.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]梁文新,宋强,王占中.AJAX+JSP网站开发从入门到精通[M].北京:清华大学出版社,2008年7月.[14]曾顺.精通CSS+DIV网页样式与布局[M].北京:人民邮电出版社,2007年8月.[15](美)StevenHolzner著.陈秋萍译.AJAXBible[M],人民邮电出版社,2007年11月.[16]JamesHolmes.Struts:TheCompleteReference,2ndEdition[M].McGraw-HillOsborneMedia,2007.[17]JanMachacek,AleksaVukotic,AnirvanChakraborty,JessicaDitt.ProSpring2.5[M].Apress,2009.[18]StevenHolzner.AJAXBible[M].Wiley,2007.[19]CayS.Horstmann,GaryCornell.CoreJava,VolumeI--Fundamentals(8thEdition)[M].PrenticeHallPTR,2008.[20]LazaroIssiCohen,JosephIssiCohen.ThewebProgrammer’sDeskReference[M].NoStarchPress,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)toproviderudimentaryfeedbackwhenthemousehoversov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户关系维护的总结与改进计划
- 2024秋三年级英语上册 Unit 4 We love animals Part B第一课时教学实录 人教PEP
- 药剂科药品管理优化方案计划
- 绩效提升的激励机制计划
- 2024年某科技公司与某小型创业公司关于人工智能技术研发的合同
- 2024年度资产包清收及处置合作意向书3篇
- 2025版高考数学一轮总复习2.6函数与方程及函数的综合应用习题
- 北京市西城区2024-2025学年高二历史上学期期末试题
- 2024年度国际能源工程建设的劳务合同3篇
- 全国粤教版信息技术八年级上册第一单元第六课《图像效果的处理》教学实录
- 民办学校教职工入职背景审查制度
- 二级公立医院绩效考核三级手术目录(2020版)
- 6人小品《没有学习的人不伤心》台词完整版
- 读《让儿童在问题中学数学》有感范文三篇
- 陈述句改成双重否定句(课堂PPT)
- 人教版六年级数学上册总复习教案
- 劳动合同法测试题含答案
- 自闭症儿童行为检核表学前版
- 五年级上册数学专项练习高的画法 全国通用
- 民警个人季度小结范文(3篇)
- 商场商户装修入驻工作流程
评论
0/150
提交评论