收藏 分销(赏)

本科毕业答辩论文基于Web的即时通讯系统设计样本.doc

上传人:二*** 文档编号:4556275 上传时间:2024-09-29 格式:DOC 页数:48 大小:1.42MB
下载 相关 举报
本科毕业答辩论文基于Web的即时通讯系统设计样本.doc_第1页
第1页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、本科毕业答辩论文基于Web的即时通讯系统设计目 录1 绪论1 选题的背景及意义1 国内外研究现状2 论文主要工作和结构安排22 相关技术及开发工具介绍3 页面开发技术3 数据库技术研究4 AJAX技术4 JQuery技术5 WEB服务器研究5 开发工具研究6 系统运行环境6 本章小结63 系统分析7 系统功能需求分析7 普通用户功能7 管理员功能8 系统性能需求分析8 系统建模9 本章小结104 数据库设计与实现11 数据库需求分析11 用户需求描述11 系统管理员需求描述11 数据流图12 数据库概念设计12 实体及其属性E-R图12 数据库逻辑结构设计13 数据库关系模式13 数据库设计表

2、14 本章小结145 系统的详细设计与实现15 系统的架构设计15 Web应用的分层架构15 MVC模式15 本系统的框架设计16 系统功能设计16 系统功能结构图17 类的设计17 系统的实现19 系统的主界面19 用户注册模块的实现20 用户登录模块的实现21 用户聊天模块的实现21 好友管理模块的实现24 用户注销模块的实现26 数据访问模块的实现27 本章小结286 测试29 功能测试29 性能测试30 小结307 结束语31 总结31 展望31附录33参考文献39致谢401 绪论人类对信息的实时性需求,注定即时通讯必将成为历史的潮流,它的广泛性将和移动通讯一样,不可逆转。通过即时通讯

3、,我们可以在网络上,更加方面地交互信息,即时交互一切需要交互的信息。 选题的背景及意义近年来,随着计算机应用技术的快速发展,网络也遍及到我们生活,为我们的学习和工作带来极大的方便。以Web技术为核心的信息交流平台已显示出其强大的生命力,正越来越受到用户的欢迎。Java技术在开发网络应用方面具有强大的优势,Jsp充分利用了Java的强大功能,已成为一种优秀的服务器端技术,是影响WEB发展方向的最重要因素之一。在Web技术日益成熟的今天,Browse/Server(简称B/S)结构已成为取代Client/ Server(简称C/S)结构的一种全新技术。本系统主要讨论基于Web方式的即时通讯系统,又

4、称“Web QQ”,用户可以以网页的形式实现聊天功能。该产品的推出旨在进一步完善WEB产品线,丰富“在线生活”平台。“基于Web的即时通讯系统设计”就是在此需求下提出的,其目的是实现Windows平台下的基于B/S(浏览器/服务器)结构的即时通讯系统。从去年以来,由于受到金融危机的影响,许多企业都大力推行开源节流的措施,鼓励内部员工采用QQ作为低成本的沟通工具。已经不能把Web QQ单纯视为网页版QQ,这不仅仅是一个单纯的网页QQ产品,而是真正将多种功能和应用整合到一个平台上,让用户在一个页面上就能完成所需的互联网操作,以帮助用户,尤其是办公用户合理支配资源,有效节约成本。 作为一款基于浏览器

5、的产品,Web QQ最大限度地减少了电脑性能或操作系统对用户的限制,特别是对于喜欢简洁高效的商务用户,以及那些临时在境外、酒店、机场或咖啡吧使用公用电脑的用户来说,Web QQ在确保安全性的前提下大大提高了使用效率。此举将有助于腾讯吸引到更多的商务用户,进一步巩固在即时通讯领域的传统优势。Web QQ作为一款基于Web技术搭建的集成式运用平台,在Web整体发展以及未来的互联网布局上具有战略性和前瞻性的意义。 国内外研究现状即时通讯软件最早发布于1996年11月15日1,以色列特拉维文的Mirabilis (I Seek You)的Beta测试版。这天标志着Internet上的第一个成热的即时通

6、讯系统(Instant Message System)的诞生。即时通讯服务在诞生之后的几年时间得到了迅猛发展,成为新增Internet用户的3个主要应用之一(Web,电子邮件和即时通讯)。在国内,1999年2月,深圳腾讯公司正式发布OICQ99 beta build 0210,开通腾讯即时通讯服务。2000年5月,腾讯QQ同时在线用户突破10万;2001年2月l0日,腾讯QQ同时在线用户突破100万。2004年4月份腾讯QQ同时在线人数最高记录已经突破了600万大关,现在腾讯公司正在把即时通讯系统往移动通讯方向扩展,如今已经将即时通讯与手机短信息(SMS)成功结合起来。即时通讯软件涉及和影响的

7、领域已近越来越广,其竞争也越来越激烈。但是纵观这些即时通讯软件业,都是基于C/S模式的,需要下载客户端进行安装,用户名、密码、聊天记录等也是存放在本地机器上,在安全性和方便性上都有所欠缺。设计并开发一个基于Web的即时通讯平台,对于现阶段的学习和研究,都是极为有意义的,基于这个前提和起因,我选择了基于B/S方式的即时通讯软件的设计与实现作为我的毕业设计。 论文主要工作和结构安排本论文主要介绍基于Web的即时通讯系统设计的开发背景,开发设计过程和实现过程,数据库设计以及系统测试,全文共分七章,具体安排如下所示:第一章 介绍课题背景、系统的设计目标、研究现状及结构安排等。第二章 介绍对系统采用的相

8、关技术及开发工具的研究情况。第三章 进行系统的需求分析,并结合需求分析进行功能设计,最后介绍系统的架构设计。第四章 根据系统的功能设计进行数据库的设计。第五章 从整体上介绍了系统的开发,具体介绍每一个功能模块的设计与实现的功能,并配有界面图以及序列图,清晰表达出本模块的设计流程。第六章 介绍本系统的功能测试以及性能测试,并总结测试结果。第七章 总结本系统的基本功能及结构,展望系统的前景和下一步的设计目标。2 相关技术及开发工具介绍本系统使用Java作为开发语言,采用JQuery(Javascript Query)技术,选择Ajax(Asynchronous JavaScript and XM)

9、技术开发设计系统,选用MySQL作为后台的数据库,运用Tomcat服务器技术,基于B/S(Browser/Sserver)模式,Microsoft Windows XP为系统运行环境进行设计。 页面开发技术DIV+CSS是一种网页的布局方法,这一种网页布局方法有别于传统的HTML网页设计语言中的表格定位方式,真正地达到了W3C内容与表现相分离,使得网页更加容易扩展,适合自动数据交换,并且更加规整2。在XHtml网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。采用DIV+CSS页面开发技术的优点:1使页面载入得更快:由于将大部分页面代码写在了CSS当中,使得页面体

10、积容量变得更小。相对于表格嵌套的方式,DIV+CSS将页面独立成更多的区域,在打开页面的时候,逐层加载。而不像表格嵌套那样将整个页面圈在一个大表格里,使得加载速度很慢。2降低流量费用:页面体积变小,浏览速度变快,这就使得对于某些控制主机流量的网站来说是最大的优势了。3修改设计时更有效率:由于使用了DIV+CSS制作方法,在修改页面的时候更加容易省时。根据区域内容标记,到CSS里找到相应的ID,使得修改页面的时候更加方便,也不会破坏页面其他部分的布局样式。4保持视觉的一致性:DIV+CSS最重要的优势之一:保持视觉的一致性;以往表格嵌套的制作方法,会使得页面与页面,或者区域与区域之间的显示效果会

11、有偏差。而使用DIV+CSS的制作方法,将所有页面,或所有区域统一用CSS文件控制,就避免了不同区域或不同页面体现出的效果偏差。5更好地被搜索引擎收录:由于将大部分的HTML代码和内容样式写入了CSS文件中,这就使得网页中正文部分更为突出明显,便于被搜索引擎采集收录。6浏览者和浏览器更具亲和力:我们都知道网站做出来是给浏览者使用的,对浏览者和浏览器更具亲和力,DIV+CSS在这方面更具优势。由于CSS富含丰富的样式,使页面更加灵活性,它可以根据不同的浏览器,而达到显示效果的统一和不变形。 数据库技术研究MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一

12、个大仓库内。这样就增加了速度并提高了灵活性3。在功能上管理上也要比Access要强得多。在处理海量数据的效率上,后台开发的灵活性,可扩展性等方面强大。采用MySQL是图形化用户界面,使系统管理和数据库管理更加直观、简单。它有丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地,并且对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。MySQL是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库4。本系统使用MySQL作为数据库服务器,安全性得到了保证,

13、可伸缩性好与相关软件集成程度高,可以满足各种类型应用的需要。 AJAX技术与传统的Web应用不同,Ajax采用了异步交互的方式。它在用户和服务器之间引入了一个中间媒介,从而改变了同步交互过程中的“处理-等待-处理-等待”模式。用户的浏览器在执行任务时即装载了Ajax引擎。该引擎是用JavaScript语言编写的,通常位于一个隐藏的框架中,负责转发用户界面和服务器之间的交互。Ajax引擎允许用户和应用系统之间的交互以异步的方式进行,独立于用户与Web服务器之间的交互5。现在,可以通过Ajax引擎向Web服务器发送请求。所以本系统决定采用Ajax来实现即时通讯各个部分“即时”效果的实现。Ajax技

14、术的优点:1减轻服务器的负担。Ajax的原则是“按需取数据”,可以最大程度地减少冗余请求,减轻服务器的负担。2无需刷新页面,减少用户心理和实际的等待时间。特别是在读取大量数据时,不会像刷新页面那样出现白屏的情况,Ajax使用XMLHttpRequest对象发送请求并且得到服务器响应,在不重新载入整个页面的情况下,用JavaScript操作DOM更新页面。因此在读取数据的过程中,用户所面对的不是白屏,而是原来的页面内容,只有在数据接收完毕后才更新相应部分的内容。这种更新是瞬间的,用户几乎感觉不到。3带来更好的用户体验。4可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻

15、服务器负担,充分利用宽带资源,节约空间和宽带租用成本6。 JQuery技术JQuery是一个简洁快速灵活的JavaScript框架7,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。JQuery库可以完成以下功能:获取页面的部分内容,修改页面的外观,修改页面的内容,页面中响应用户的交户,给页面显示加上动画效果,提供Ajax支持,简化共同的JavaScript任务等。JQuery技术的优势:、语义易懂、学习快速、文档丰富。,其代码非常小巧,最新版的JavaScript包只有20K左右。,以及基本的xPath。,它支持的浏览器包括IE ,FireFox 。,便

16、于代码的维护和修改8。,除了JQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、DataGrid,树形菜单、图像特效以及Ajax上传等。JQuery的设计会改变你写JavaScript代码的方式,降低你学习使用JS操作网页的复杂度,提高网页JS开发效率。、开发者以及那些还好者,同样适合用于商业开发,可以说JQuery适合任何JavaScript应用的地方,可用于不同的Web应用程序中。 WEB服务器研究Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试Jsp程序的首选。对于一个初学者来说,可

17、以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对Html页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行的。当配置正确时,Apache为Html页面服务,而Tomcat实际上运行Jsp页面和Servlet。另外,Tomcat和Apache服务器一样,具有处理Html页面的功能,另外它还是一个Servlet和Jsp容器,独立的Servlet容器是Tomcat的默认模式。因为Tomcat技术先进,性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可

18、,成为目前比较流行的Web应用服务器9。 开发工具研究MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展10,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持Html,Servlet,Jsp,CSS,JavaScript,XML。故本系统采用MyEclipse作为开发工具。 系统运行环境操作系统:Microsoft Windows XP Service Pack

19、3,。 本章小结本章主要讲解了系统在开发设计中用到的技术和开发工具的研究,包括页面开发的CSS+Html技术,MySQL数据库技术,JQuery技术,Web服务器技术研究,开发工具研究和系统运行环境的研究,使读者对系统中的技术有所了解,更好的运用系统。3 系统分析为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。需求分析师软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,也就是对目标系统提出完整、准确、清晰、具体的要求11。需求分析要确定对系统的综合要求,主要包括功能需求,性能需求,可靠性和可用性需求,出错处理需求和将来可能提出的需求等。本章节主要进行

20、系统的功能需求分析,系统性能需求分析。本章主要完成系统的功能需求分析和性能需求分析,使用UML(Unified Modeling Language)对系统进行建模。 系统功能需求分析功能需求是对软件系统的一项基本需求12。本系统主要用户角色有两种:普通用户和系统管理员。通过对用户和管理员的功能分析,系统功能主要有注册、登录、退出、发送消息、搜索好友、添加好友、删除好友和用户聊天信息管理等功能,本节主要对各功能进行详细的分析,从而确定系统必须完成的工作。 普通用户功能1注册(1) 即时通讯系统允许多个用户注册。(2) 注册新用户填写个人信息时,采用Ajax异步刷新技术。(3) 注册新用户时必须填

21、写符合要求的信息,必须通过系统验证。2登录(1) 用户填写用户名和密码,必须通过系统验证。(2) 登录完成后跳转到系统主界面(聊天界面)。(3) 在线状态和离线状态要有明显的区别。3聊天(1) 用户可以传输文本消息,图片。(2) 聊天时自动保存聊天记录。(3) 用户可以查看聊天记录。(4) 用户可以和一个好友聊天,也可以和多个好友聊天。(5) 用户可以清除聊天窗口显示的聊天记录。4好友管理(1) 用户可以查找好友。(2) 用户可以添加好友。(3) 用户可以删除好友。(4) 用户可以添加多个人为好友,一个用户可以被多个人添加为好友。5查看在线好友(1) 用户登录时列出所有在线好友。(2) 用户可

22、以看到新登录的好友。6查看个人资料(1) 用户登陆后可以查看本人的基本信息,如本人的的用户名,性别,年龄,密码。 管理员功能系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对用户的设计,基本功能需求如下:1用户资料管理(1) 管理申请有本系统账号的所有用户的基本资料。2用户聊天信息管理(1) 管理员可以查看用户聊天信息。(2) 管理员可以删除用户聊天信息。 系统性能需求分析1输入输出(1) 在进行输入输出时必须清晰的列出所有输入状况及数据,要考虑到尽可能达到的范围,以使输入输出完整准确。2时间特性要求(1) 查询服务部分:用户通过电脑提交命令到返回结果不超过5

23、秒钟。(2) 数据管理部分:提交某一数据录入到结果返回不超过5秒钟。3灵活性(1) 运行环境:支持Windows2000及以上的操作系统。(2) 浏览器:。4数据管理能力要求(1) 用户名信息:用户名只能为112个字母,数字或汉字。(2) 密码信息:密码为416字母,数字或划线。(3) 聊天记录信息:不能为空。(4) 年龄信息:年龄只能是数字。5故障处理要求(1) 磁盘碎片过多、数据库存储空间不够,引起数据库访问变慢等问题需要对磁盘进行扩展和维护13。(2) 执行程序非正常退出,响应确实,修改源代码前应备份。(3) 数据库没启动引起访问问题,须启动数据库服务器。(4) 其他具体问题,再做具体分

24、析。多查多问。6其他专门要求在程序的开发过程中,应遵循结构化的程序设计原则,精心设立运行日志,从而加强系统的可维护性;另一方面要注重系统的界面友好性、保持各程序模块界面的统一。 系统建模UML统一建模语言,是用来对软件密集系统进行可视化建模的一种语言14。UML为面向对象开发系统的产品进行说明、可视化、和编制文档。它提供了多种类型的模型描述图(diagram),它使开发中的应用程序更易理解。最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的角色(a

25、ctors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。用例图由参与者,参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。普通用户用例图如下图3-1所示:图3-1 普通用户用例图管理员用例图如下图3-2所示:图3-2 管理员用例图 本章小结本章按照软件需求分析的原则,主要明确了本系统的功能需求和性能需求,确定了系统所有完成的功能,明确了开发目标,并在此基础上运用UML系统建模工具

26、画出了系统的用例图,描述了系统功能单元。4 数据库设计与实现数据库是本系统的核心,系统中所有的信息都存储在数据库中,在用户界面产生的请求都通过访问相关的Dao层进行数据操作,Dao层通过对JDBC的Connection进行封装的工具类进行数据库操作,从而实现相应的功能。数据库软件有很多。本系统中数据库采用MySQL作为数据库管理系统。数据库是软件的核心部分,数据库设计的合理与否对系统的开发有着至关重要的影响。数据库开发的过程一般先是系统分析,再逻辑设计,然后物理实现。在系统分析中分析数据库各用户的需求关系,并画出E-R图直观地表示出数据库系统的需求。逻辑设计中根据系统分析设计出相应的关系模型。

27、物理设计则为逻辑设计中的数据模型选取较合理物理结构,通常通过数据库软件创建与逻辑设计中数据模型对应的数据库。 数据库需求分析需求分析简单地说就是分析用户的要求。需求分析是合计数据库的起点,需求分析的结果是否准确地反映了用户的实际需求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用15。 用户需求描述用户对本系统的主要需求是:可以申请账号,设置密码。可以设置自己的用户名,填写个人资料。任何在线用户都可以和处于在线状态的好友进行聊天,可以查看任何好友的基本资料,可以查看聊天记录(包括聊天时间,聊天内容)。其它需求:查看本人的基本信息,如本人的的账号,性别,年龄。在线状态和离线状态要

28、有明显的区别。 系统管理员需求描述系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对用户的设计,基本功能需求如下:(1) 管理本系统所有聊天记录(包括聊天时间,聊天内容),并且定期进行删除。(2) 管理申请有本系统账号的所有用户的基本资料。 数据流图调查了解了用户需求以后,还需要进一步分析和表达用户的需求。数据流图很好的表达了数据和处理过程之间的关系。根据需求分析,本系统的数据流图如下图4-1所示:图4-1 数据流图 数据库概念设计概念结构设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。它独立于逻辑结构设计和数据库管理系统。现实世界中一组具有某些共

29、同特性和行为的对象就可以抽象为一个实体。对象类型的组成成分可以抽象为实体的属性。并根据系统实际确定各实体之间的关系。 实体及其属性E-R图实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的E-R图模型16。通常将它简称为E-R图,相应地可把用E-R图描绘的数据模型称为ER模型。E-R图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。在整个数据库中,主要体现各个实体之间的关系,经过分析,可以得出数据库实体属性E-R图如下图4-2所示:图4-2 E-R图 数据库逻辑结构

30、设计逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为关系模型:消息(消息编号,用户名,消息,时间)好友(用户名,密码,年龄,性别,状态)用户(用户名,密码,年龄,性别,状态) 数据库关系模式该系统的数据库设计满足数据库设计的第三范式。在设计数据库的时候,例如对本数据库中任意一张表,用户表。在关系模式R的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。例如用户名,密码,年龄,性别,状态。一个人只能有一个用户名,一个用户名只能有一个密码,一个年龄,一个性别,一种状态。关键字是用户名。如果关系模式R(U,F)中的所有非主属性完全依赖于一个候选关

31、键字,则称R是属于第二范式的。仍用用户表分析,此数据库满足第二范式。如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递依赖,则称R是属于第三范式的。 数据库设计表图4-1 User表 本章小结本章根据数据库设计的基本步骤,首先对本系统的数据库进行了需求分析,包括普通用户和系统管理员的需求,得出系统的数据流图。然后进行概念结果设计,得出E-R图。最后进行逻辑结果设计,完成了到关系模型的转换,并对关系模型进行了优化,对各个表之间的关系进行了分析和说明,对表的设计进行了详细的讲解和说明。5 系统的详细设计与实现本章主要介绍系统的详细设计与实现,主要学生端的查看实训课程模块、查看实训

32、公告模块、查看实训作业模块、查看实训签到模块、实训在线交流模块和实训百度答疑模块的具体实现步骤。 系统的架构设计在设计一个Web应用时需要考虑很多问题,比如:在视图层如何处理用户交互;在业务层如何处理业务逻辑;在数据层如何对应用数据进行持久化;以及怎样选择这些层的实现技术和设计方案才能达到各层间的松耦合并确保应用系统具有良好的扩展性等。所以,对于一个实际应用来说,架构设计的选择就显得尤为重要。 Web应用的分层架构(1) 视图层提供用户交互接口,对用户的请求做出响应,实现技术有很多种本项目结合JQuery框架实现视图层的交互。(2) 业务逻辑层实现各种业务逻辑功能,是应用的核心所在,在Java

33、中常用的有JavaBeans,EJB等技术。(3) 持久层实现数据访问细节,提供业务数据的保存,更新,删除和查询等操作。(4) 数据库层完成业务数据的存储和管理功能,常用的有:Oracle、SqlServer、MySQL等。将系统进行如上的分层,从理论上可以让每一层各司其职,表示层提供友好的用户交互界面、业务逻辑层处理具体的业务、持久层处理数据库的读取存储。将一个复杂的应用领域细分成诸多最小的单元,然后进行串联、组合,使得在实现一个应用领域的过程中,最小单元达到最大复用。 MVC模式MVC是一种设计模式,它强制性的将应用程序的输入、处理和输出分开。在MVC模式中,应用程序被分为三个模块:模型(

34、Model)-视图(View)-控制器(Controller)17,它们分别负责不同的任务。其中模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。视图是应用程序中与用户界面相关的部分,使用户看到并与之交互的界面。控制器的工作是根据用户的输入,控制用户界面数据显示和更新Model对象状态,具体见图5-1所示。 本系统的框架设计在学习和研究Web应用的分层架构和MVC的基础上,基于Web的即时聊天系统的架构设计采用MVC设计模式。图5-1 系统架构图 系统功能设计本系统的主要任务是提供用户之间实时的交流,方便用户之间相互的沟通。登录模块采用基于标准的MVC架构的开发模式。与一般的登录系统相

35、似,主要是对登录用户的身份进行合法性验证。登录状态分为两种:在线、隐身。登录成功即为在线。打开系统,用户单击“注册”按钮,输入个人信息,向系统提交,系统通过对其进行合法性验证,返回给用户一个注册成功或失败信息。如果注册成功,系统就会将其信息保存,用户就可以登录系统。反之,就要重新输入用户信息。然后向系统提交验证信息。单击“注销”按钮,将注销用户的登录。当用户登录成功后,系统将显示他的所有好友。好友列表中的好友,有在线的也有不在线的。系统会实时更新用户列表:当有好友登录后将即时显示该好友的状态为在线;当有好友退出系统后将在用户列表中显示为不在线。当用户登录成功后,单击“查找好友”按钮,输入好友的

36、名称,即可查看好友的个人信息,还可以选择是否要将其添加为自己的好友。当用户登录成功后,单击“添加好友”按钮,输入要添加好友的名字,系统会找到这个好友的ID,然后就可以将其加为自己好友,这样就可以与之交流了。当用户登录成功后,单击“删除好友”按钮,就可以把该好友从他的列表中删除,删除了之后就不能与之进行聊天了。用户选择发送对象后,直接进行发送。在消息发送后接收者能够实时接收消息。 系统功能结构图:Web即时通讯系统注册查看信息删除好友查看列表聊天添加好友注销登录图5-2 系统功能结构图 类的设计User类:该类主要负责用户的个人信息管理,包括username,password,sex,age,s

37、tatus属性以及对应的get和set方法的生成等。Message类:该类主要负责用户的聊天信息管理,包括id,username,content,timestamp属性以及对应的get和set方法的生成等。DataAccessImpl类:该类完成了对数据库的各种操作,包括对用户信息和聊天信息的增删改查。DBConnection类:完成客户端与服务器之间的通信连接。方法有getConnection()。:UserLogin类:该类负责用户的登录操作,检查用户输入的用户名和密码是否正确。UserRegister类:该类负责用户的注册操作,检查用户输入的用户名和密码是否正确。IsUserExists

38、类:该类负责验证用户注册时输入的用户名是否已经存在,防止重名。ListUser类:该类负责用户的好友列表管理,保证用户的在线和不在线好友都能够清晰的显示出来。 Search类:该类负责用户查看好友的个人信息、查找好友、添加好友、删除好友。图5-3 系统总体类图DoMessage类:该类负责用户的聊天信息管理,包括处理接受信息和处理客户请求消息,设置线程控制器和启动线程,保证用户可以实时聊天。MsgServiceImpl类:该类负责完成对用户的聊天信息的即时存储工作,包括得到、提交和更新客户端时间戳,接受和返回消息,保存消息到数据库等。主要方法有:responseXML()和saveMessag

39、e()。ClearMsgThread类:该类负责完成对用户的聊天信息的即时清理工作。 系统的实现系统的实现部分主要是从系统界面的实现到系统控制层的实现,然后实现了系统业务层,最终实现了整个系统。本文主要介绍系统的最终实现效果及部分功能的流程图。 系统的主界面网站用户界面(Website User Interface)是指网站用于和用户交流的外观、部件和程序等。所以网站界面的设计,既要从外观上进行创意以到达吸引眼球的目的,还要结合图形和版面设计的相关原理,从而使得网站设计变成了一门独特的艺术18。本系统界面在设计的过程中遵循界面的简洁,也就是要让用户便于使用、便于了解、并能减少用户发生错误选择的

40、可能性。所以,本系统只有一个主界面,在主界面包含了各种功能的按钮,每点击一个功能按钮,就会出现一个子界面窗口,但主界面还是没有变化。该界面的logo是平顶山学院的logo。用户点击界面上的功能按钮,即可完成相应的操作。主界面如下图5-4所示:图5-4 系统主界面界面的显示主要由CSS+DIV控制布局使用JavaScript相应用户的输入进而显示用户界面。用户打开主界面以后就可以通过按钮选择主界面下的子界面了。根据心理学家George ,人一次性接受的信息量在7个比特左右为宜。总结一个公式为:一个人一次所接受的信息量为72模块。这一原理被广泛应用于软件建设中,一般网页上面的栏目选择最佳在59个之

41、间,如果软件所提供给浏览者选择的内容链接超过这个区间,人在心理上就会烦躁,压抑,会让人感觉到信息太密集19。所以,本系统的选择项设计了八个分别为是注册、登录、退出、聊天窗口、查找好友、添加好友、删除好友、查看个人信息这八个界面。这八个界面采用统一的风格统一的显示方式,使用户感觉清爽、易于学习。 用户注册模块的实现如果是新用户,必须注册成功才能登录和聊天。用户注册时还要保证用户输入的用户名不被重复注册、用户的密码不会过于简单短小而且必须完成了必填项的填写。功能描述:点击“注册”按钮,注册界面会以一种较慢的特效方式在2秒内显示,用户根据要求填写个人信息。如果某个输入的内容不合法,系统会用红色字体提

42、示,并向用户显示正确的填写方式。用户的输入项是否正确是通过向服务器端提交信息,服务器端验证用户名和密码和其它必填项的正确性后返回验证结果。如果用户通过了系统验证,系统会向用户显示其已经注册成功。用户输入项的正确性验证用到了正则表达式。一个正则表达式通常被称为一个模式 (pattern),是用来描述或者匹配一系列符合某个句法规则的字符串。a-zA-Z1-9u4e00-u9fa51,12是用来匹配用户名是否是用字母和数字或者汉字组成的且用户名的长度在1到12个字符之间。“w4,16”保证密码在4到16个字符之间。为了保证用户名的单一性,在处理用户注册时还会调用数据访问层的DataAccessImp

43、l类的find()方法确保该用户名不存在。其模块序列图如下图5-5所示。图5-5 注册模块序列图 用户登录模块的实现用户只有登录成功后才能进行聊天、好友管理、查看聊天窗口和退出系统等操作。用户登录以后会在session里保存一个用户名,这个用户名就是用户已经登录的标记。功能描述:点击“登录”按钮,用户填写用户名和密码。用户输入结束以后。首先,视图层会验证用户的输入不为空、然后将数据提交给服务器端进一步验证。用户的登录请求会先被服务器拦截,找到要处理登录请求的servlet。然后根据servlet中的相关信息,调用函数处理登录请求。如果用户名或密码填写错误,系统会用红色字体提示,并提示用户重新输

44、入。如果用户通过系统验证,登录界面就会以淡出的动画效果慢慢消失,聊天界面就会自动以下拉的动画效果出现。其登录模块序列图如下图5-6所示。图5-6 登录模块序列图 用户聊天模块的实现功能描述:用户在编辑区输入聊天信息,或者点击表情按钮,选择可以表达自己心情的图片,然后点击“发送”按钮,即可发送消息。在非编辑区就可以查看自己的消息和接受好友消息,点击“清屏”按钮,即可清楚用户的消息显示区。点击“关闭”按钮,即可关闭该聊天窗口。点击“聊天窗口”按钮,即可重新显示刚才关闭的聊天窗口,继续聊天。用户不仅可以与单个用户聊天,还可以与多个用户聊天。结合上述分析,用户聊天的功能需要处理用户发送聊天数据、用户获

45、取聊天数据、清理用户无用的聊天数据这三个功能。根据聊天功能的需要,获取聊天内容应该是自动刷新的。所以,利用JQuery框架,在页面层设置一个定时器,以获取聊天内容。根据聊天系统的性能需求和实际用户的需要,必须定时清理用户的聊天信息,避免过多的聊天信息占用过大的数据库存储容量。所以,服务器端要有一个线程定时清理数据库。用户聊天功能的实现:1. 发送聊天数据的流程。(1) 定义用户发送数据的格式。用户发送的数据写入request对象。在该对象中是用哈希表的形式存储数据。数据格式是用户名聊天内容。(2) 调用JQuery的Post()方法发送“postMsg”类型的Post请求。(3) 。(4) 在

46、SaveMessage()方法中先将聊天数据解析。数据的解析方法是调用String类的replaceAll()方法,替换掉聊天内容中的Html标记如” “(空格)和”(换行)符号为相应的书写的符号如空格和换行符,将符号替换为”“。解析完成后就可以使用解析后的数据初始化Message对象。(5) 然后使用DataAccessObject类的InsertMessage()将Message对象存入数据库。用户发送聊天数据,可以抽象为如下序列图所示的流程:图5-7 聊天模块序列图。在介绍聊天记录获取的流程之前,首先介绍XML。可扩展标记语言(英语:eXtensible Markup Lang

47、uage,简称:XML),是由万维网联盟定义的一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性20。(1) 。(2) ,DoMessage在doPost()方法中处理Post请求。(3) 在doPost()方法中MsgServiceImpl对象会调用ResponseXML()方法,在该方法中读取数据库中的聊天信息,并且返回所有Message对象的List列表,然后依次读取Message对象并且将Message对象封装为XML类型的数据。最后向浏览器响应请求。(4) XML文件的格式为XML头部、状

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服