《基于Java即时聊天系统的设计及其实现.doc》由会员分享,可在线阅读,更多相关《基于Java即时聊天系统的设计及其实现.doc(107页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 本科毕业设计(论文) 基于Java即时聊天系统设计和实现 学 号:05学生姓名:何晶指导老师:范忠诚所在学院:计算机科学技术学院所学专业:计算机科学和技术专业 6月摘 要伴伴随互联网高速发展,产生了一系列和互联网相关新鲜事物,即时聊天系统就是其中最具代表性产物。即时聊天系统经过不停地发展,凭借其快速、便捷、即时特点,逐步成为一个关键信息交流工具,受到越来越多网民青睐。即时聊天系统开发关键包含两个方面:即时聊天系统服务器端设计、即时聊天系统用户端设计。即时聊天系统服务器端设计关键经过Socket套接字建立服务器,服务器能够读取和转发从用户端发来信息,而且能够刷新用户列表。即时聊天系统用户端设计
2、关键经过和服务器建立连接,从而使服务器端和用户端信息进行交流。在这里,网络通信机制原理得到了利用,经过直接继承Thread类来建立多线程。同时,开发中利用了计算机网络编程基础理论知识,如TCP/IP协议、用户端/服务器端模式(Client/Server模式)、网络编程设计方法等。在网络编程中利用流来实现信息交换,从而读取和发送信息。即时聊天系统采取myeclipse为基础开发环境和java语言进行编写,经过不停修正和改善初始原型系统,直至此系统完全可行为止。关键词:即时聊天系统;套接字;Java AbstractAlong with the high-speed development of
3、Internet, produced a series of new things related to the Internet, instant messaging system is the product of one of the most representative. Instant messaging system through constant development, with its fast, convenient, real-time characteristics, becoming an important communication tool, get the
4、 favour of a growing number of Internet users. Instant messaging system development mainly includes two aspects: instant messaging system server client, instant messaging system design. Instant messaging system design mainly through the Socket server Socket server, the server can read and forward fr
5、om the clients information, and be able to refresh the user list. Instant messaging system design mainly by the client and the server connection is established, which makes the server to communicate with the clients information. Here, the principle has been using network communication mechanism, thr
6、ough direct inheritance for building a multithreaded Thread class. At the same time, the use of computer network programming in the development of the basic theory of knowledge, such as TCP/IP protocol, Client/Server mode (Client/Server mode), network programming design method, etc. Using flow in ne
7、twork programming to achieve the exchange of information, so as to read and send information. Instant messaging system using myeclipse as the basic development environment and the Java language to write, by constantly revised and improved the initial prototype system, until the system is completely
8、feasible. Key words:Instant messaging system ;socket ; Java目 录摘 要IAbstractII第1章 绪论1 1.1 课题背景1 1.2 中国外发展现实状况1 1.2.1 国外发展现实状况1 1.2.2 中国发展现实状况1 1.3 开发目标和意义2 1.4 系统设计思想2第2章 方案论证3 2.1 方案分析3 2.2 可行性分析3 2.2.1 经济可行性3 2.2.2 技术可行性4 2.2.3 操作可行性4 2.2.4 法律可行性4 2.3 方案确实定4 2.4 系统设计相关技术4第3章 需求分析8 3.1 系统基础功效描述8 3.2
9、系统需求分析8 3.3 数据流图8 3.4 数据字典10 3.5 用例图12第4章 系统概要设计14 4.1 系统总体步骤图14 4.2 系统功效模块划分15第5章 系统具体设计和实现18 5.1 系统设计和实现18 5.1.1 注册模块18 5.1.2 登录模块20 5.1.3 聊天模块22 5.1.4 后台管理模块25 5.1.5 其它功效实现28 5.2 数据库设计31第6章 软件测试和结果分析38 6.1 软件测试38 6.1.1 白盒测试38 6.1.2 黑盒测试38 6.1.3 系统测试38 6.2 测试方法和总结39 6.2.1 测试方法39 6.2.2 测试总结40结 论41致
10、 谢43参考文件44附 录45第1章 绪论1.1 课题背景人类社会在不停发展,从原始社会发展到现在高度发达文明社会,离不开人类团结协作及发明力,而交流便是人类在发展过程中至关关键一项技能。在人类漫长发展过程中,交流方法也在不停更新改变。从最早交流方法直接交流(语言、文字等),到以后利用介质交流方法间接交流(飞鸽传书、烽火狼烟等),再到近现代利用工业革命结果,发明出了远程交流方法(电报、电话等)。而到了上世纪末,伴随计算机技术和网络技术高速发展,诞生了一个新型交流方法即时聊天系统。即时聊天系统在沟通、协作方面有着其它交流方法无法比拟优势,它凭借方便、快捷、实时等特点得到了越来越多人青睐。本课题研
11、究就是基于Java语言即时聊天系统。即时聊天系统是为了满足各用户之间进行即时信息交流而设计一套系统,作为一个新型通信和交流工具,即时聊天系统含有极其广泛发展前景。本系统关键特征是能动态、实时完成信息传输,同时含有高效交互性,更有效处理用户请求,同时维护和更新也愈加简易。本文接下来会依次介绍即时聊天系统运行所需环境及其工作步骤和各个功效控件工作原理,而且文中提供了部分程序源代码。1.2 中国外发展现实状况1.2.1 国外发展现实状况当今国际上对网络通信系统研究很好企业有:思科,Sun,Ms等企业,思科关键研究是底层传输;MS,Sun企业研究是应用层。其中MS企业凭借其在操作系统垄断地位,为了在网
12、络发展中取得先机,采取了多种多样手段。不过,其捆绑msn,不管从功效上,还是技术上来说,全部不算是很优异。这让人想起了当年网景企业,网景只是生不逢时。MS不择手段想打跨网景,可见其对网络重视。现在,Sun企业在网络应用上捷足先登,凭借着Java,Sun在网络应用上领先于MS。微软,想用一样措施搞跨对手,所以它拿出了Visual c#来对抗Java。这些全部是在应用层面开发工具,应用层上产品就更显种类繁多。ICQ几乎是国际上通用即时通信工具,因为在中国它应用不是很广,所以其原理也极少被介绍。Msn,是MS产品,一样在中国没什么市场,所以对其原理也极少被讨论过1。1.2.2 中国发展现实状况中国在
13、应用层上网络应用软件现在发展异常火爆,因为中国有着网络应用最大市场。现在中国网络基础性建设发展快速,应用软件也层出不穷。不少厂商分别推出了自己IM,如腾讯QQ、阿里旺旺、新浪UC、移动飞信等,这些全部是我们所熟悉PC端即时通讯软件。伴随智能手机、平板电脑普及,部分移动端即时通信系统也如雨后春笋般涌现出来,如小米企业米聊,腾讯企业微信,还有年轻人之间很流行陌陌、游戏玩家常见YY语音等。这些软件本身功效也越来越丰富,远远超出了单纯即时聊天系统范围。现在即时通信系统不仅仅是大家沟通工具,还成为了大家利用其进行电子商务、工作、学习等交流平台。1.3 开发目标和意义在当今社会,不管是个人用户还是企业用户
14、,对沟通需求总是在不停地发展。传统沟通交流方法如电话、传真、邮件等已经不能完全满足大家学习、工作、生活需要。伴随计算机软件、计算机网络和移动通信技术发展融合,集方便、廉价、快捷、实时等优点于一身即时聊天系统能够说是继电子邮件、万维网以后,互联网上最含有杀伤力应用。极难想象一台个人电脑没有安装像QQ这么即时通讯软件。即使即时聊天系统设计初衷是聊天,但正如前面所说,其功效已经超出了聊天范围,伴随企业即时通讯工具(EIM)出现,IM系统更是成了企业信息公布、资源共享、问题探讨和网络营销一把利器。经过现有技术,企业完全能够摒弃通用无偿即时通讯系统,转而依据自己企业需求定制开发自己专属内部即时通讯系统,
15、以实现愈加好管理,提升职员工作效率。我们生活中沟通无处不在,即时聊天系统这类广泛使用基础软件研究开发意义深远。对于个人用户而言,能够实现好友即时通讯,传输实时信息,让用户随时随地全部可和好友保持畅快有效沟通。对于企业用户而言,能够实现建立职员交流平台,统一信息公布平台,降低运行成本,促进企业办公效率。商业即时通讯系统功效越来越多样化,部分功效也很新奇,如现在流行语音对讲功效。本系统不比商业系统,没有考虑过多复杂性,关键实现了基础通讯功效,以满足学习研究之用。1.4 系统设计思想基于Java技术聊天系统关键是探索怎样在Java技术下能够实现即时聊天部分基础功效:用户注册,用户登录,查找其它用户,
16、添加删除好友,添加个性署名,公布和接收系统消息,实现一对一聊天,能够发送表情等功效。论文设计关键采取了两种研究方法:一是文件资料研究方法。在研究聊天系统现实中,本人经过图书馆、电子图书馆学习了Java语言中部分编程技术;二是理论和实际相结合,既然掌握了技术和方法,那么就应该快速进行实践,在软件设计过程中,才能够了解到理论和现实差距,碰到棘手问题,应该快速查阅资料快速攻破。第2章 方案论证2.1 方案分析经过认真研究和分析,同时综合多种计算机高级语言特征和适应范围,最终决定选择纯面向对象Java语言来完成即时聊天系统设计。对于本系统设计,能够采取C/S和B/S两种不一样模式。在数据库方面,Hib
17、ernate和MyBatics全部有着很强大功效,而且Mysql和Oracle也有着不一样优缺点。总而言之,能够得到以下两个方案。方案一:C/S模式+Hibernate+OracleC/S(Client/Server)结构,即大家熟知用户机和服务器结构,其优点是能充足发挥用户端PC处理能力,很多工作能够在用户端处理后再提交给服务器。对应优点就是用户端响应速度快。而且Hibernate对数据库进行是重量级封装,对整个运行速度不会很慢。而且Oracle体积很大通常在多个GB安装包,运行时它内存通常是几百兆,不过Oracle集成功效很强大。方案二:B/S模式+MyBatics+MysqlB/S(Br
18、owser/Server)结构即浏览器和服务器结构,它是伴随Internet技术兴起,对C/S结构一个改变或改善结构。在这种结构下,用户工作界面是经过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,不过关键事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这么就大大简化了用户端电脑载荷,减轻了系统维护和升级成本和工作量,降低了用户总体成本(TCO)。MyBatics是对数据库轻量一个封装,不过sql语句需要自己来设置,配置在xml文件中。而MYSQL很小,通常几十兆,对主机内存占用也不是很大,安装方便。2.2 可行性分析开发任何一个系统,全部是要受到时间和
19、资源等部分限制。所以,在每一个系统开发之前,全部必需要进行可行性分析,这么就能够降低软件开发所带来风险,也大大避免了在物力、人力和财力上浪费2。本系统可行性分析应包含四个方面:经济可行性、技术可行性、操作可行性和法律可行性。2.2.1 经济可行性计算机网络已经普及,所以在网络设备上不需要进行大投入。本系统假如采取一个MySQL数据库服务器,相对于Oracle数据库服务器成本偏低。同时,本系统能够让大家交流愈加便捷,其带来间接效益远远超出了其开发成本,所以在经济上本系统设计是含有完全可行性。2.2.2 技术可行性此系统能够使用MySQL存放用户信息,因为MyBatics对Sql语句封装小,这会增
20、加开发过程中代码量,而且,Oracle运行时很占用内存,它集成了很多功效,而且我们用很多功效用不上,所以MySQLl是很满足我们需求。MySQL作为一个关联数据库管理系统,将数据保留在不一样表中,是一个安全度高、可靠性好而且能够支持面向对象设计数据库系统。同时,MySQL开放源码,速度快、总体拥有成本低等特点Error! Reference source not found.。而且在易用性、可维护性、灵活性等方面也很好。采取JDBC技术对其进行增删改查,使用套接字来实现网络上用户和服务器之间连接,同时采取Hibernate 框架来管理Java 类到数据库表映射(包含从Java数据类型到SQL数
21、据类型映射),而且提供数据查询和获取数据方法。所以从技术角度来看本系统设计是含有完全可行性。2.2.3 操作可行性首先能够让当地机同时作为用户端和服务器实现一台机器上即时通讯。其次,只要一台以上计算机连接在同一个局域网内,而且在作为用户端机器本系统中设置需要连接作为服务器端机器IP地址,本系统就能够实现局域网通讯,所以操作上完全不存在问题。假如要实现internet上通讯,理论上只需要将服务器端运行在一个有固定IP公网上就能够。2.2.4 法律可行性本即时聊天系统开发,不会侵犯到她人专利版权,也不违反国家相关要求,所以在法律上来说也是可行。2.3 方案确实定依据以上分析和总结,很显然方案一更适
22、合我们完成系统设计。所以,我们使用方案一来进行项目标开发。2.4 系统设计相关技术本即时聊天系统是基于Java语言,采取C/S结构,使用MySQL存放用户信息,采取JDBC技术对其进行增删改查,使用套接字来实现网络上用户和服务器之间连接,同时采取Hibernate 框架来管理Java 类到数据库表映射,而且提供数据查询和获取数据方法。1、Java语言Java是一个经过解释方法来实施语言,其语法规则和C+类似。同时,Java也是一个跨平台程序设计语言3。用Java语言编写程序,能够运行在任何平台和设备上,如跨越IBM个人电脑、MAC苹果计算机、多种微处理器硬件平台,和Windows、Unix、O
23、S/2、MAC OS等系统平台,真正实现“一处编写,四处运行”。Java很适合于企业网络和Internet环境,而且已成为Internet中最具影响力、最受欢迎编程语言之一。和现在常见C+语言相比,Java语言简练得多,而且提升了可靠性,除去了最大程序根源错误,另外它还有较高安全性,能够说它是有史以来最为卓越编程语言。Java语言编写程序既是编译型,又是解释型。程序代码经过编译以后转换为一个称为Java字节码中间语言,Java虚拟机(JVM)将对字节码进行解释和运行。编译只进行一次,而解释在每次运行程序时全部会进行。编译后字节码采取一个针对JVM优化过机器码形式保留,虚拟机将字节码解释为机器码
24、,然后在计算机上运行。Java语言特点包含:简单、面向对象、分布性、可移植性、解释型、 安全性、健壮性、多线程、高性能、动态。2、MyEclipse介绍MyEclipse,是基于Eclipse开发功效强大企业级集成开发环境,关键用于Java、Java EE和移动应用开发。据官方介绍,诸如三星、IBM、戴尔、惠普、花旗集团、西门子、斯坦福大学、波音企业等著名机构均使用MyEclipse进行Java、JavaEE开发,80%以上全球财富100强企业均是MyEclipse用户。MyEclipse提供了对UML、Ajax、Web、Web Services、J2EE、JSP、 XML、 Struts、
25、JSF、 Java Persistence、 EJB、扩展数据库和多种应用服务器集成支持4。MyEclipse也全方面支持多种主流第三方框架,让你能够快速高效地进行开发工作。另外,MyEclipse还全方面支持多种基于Eclipse平台插件,许可你自由定制或扩展个性化功效。MyEclipse全方面支持Eclipse开源平台全部功效特征,假如你熟悉Eclipse,那么你能够轻松地上手MyEclipse,包含熟悉Eclipse快捷键,而且使用MyEclipse完成某项任务往往要比使用Eclipse愈加紧速、简单5。3、Oracle介绍Oracle Database,又名Oracle RDBMS,或
26、简称Oracle。是甲骨文企业一款关系数据库管理系统。它是在数据库领域一直处于领先地位产品。能够说Oracle数据库系统是现在世界上流行关系数据库管理系统,系统可移植性好、使用方便、功效强,适适用于各类大、中、小、微机环境。它是一个高效率、可靠性好 适应高吞吐量数据库处理方案。ORACLE数据库系统是美国ORACLE企业(甲骨文)提供以分布式数据库为关键一组软件产品,是现在最流行用户/服务器(CLIENT/SERVER)或B/S体系结构数据库之一。比如SilverStream就是基于数据库一个中间件。ORACLE数据库是现在世界上使用最为广泛数据库管理系统,作为一个通用数据库系统,它含有完整数
27、据管理功效;作为一个关系数据库,它是一个完备关系产品;作为分布式数据库它实现了分布式处理功效。但它全部知识,只要在一个机型上学习了ORACLE知识,便能在多种类型机器上使用它7。4、网络通信协议介绍网络通信协议为连接不一样操作系统和不一样硬件体系结构互联网络提供通信支持,是一个网络通用语言。网络通信层次结构和网络通信协议,是开发网络程序基础。现在在网络编程方面最常见是TCP/IP和UDP通信协议。经过这些协议,网络通信各主机能够用一个统一而非杂乱规范,高效便捷地相互发送和接收消息。本系统在通讯功效实现中采取了TCP传输协议,直接使用JavaAPI提供类Socket和Serversocket等来
28、实现。(1)TCP传输协议说明TCP协议是面向连接协议,比如说在用户端A和B进行连接之前必需首先建立数据通路,就向打电话一样,在通话之前必需先拨号,等候对方接听以后才能进行通话。TCP协议中数据传输采取是同时方法,当数据发送到对方时,必需等候接收方应答信号后才能继续下一次发送工作,即通常所讲三次握手。因为TCP协议采取是这种连接方法,所以由它建立连接是可靠。在网络不是十分理想情况下,速度牺牲很大,不过却能够确保所传输数据正确性。(2)UDP传输协议说明UDP协议采取是面向无连接通信方法,它在通信前不需要提前建立通信链路,它是异步,数据发送比较快速,不需要等候应答信号。优点是发送速度较快,不过在
29、数据一致性方面不好,在网络差情况下,轻易丢失数据包。另外,使用UDP传输数据时对数据是有大小限制,每个被传输包必需限定在64KB之内6。(3)JavaSocket(套接字)说明在Java语言里,使用Socket(套接字)模型来封装网络传输具体动作。Java提供了Socket相关包,Java中Socket设计采取了面向对象思绪,模拟了TCP协议里用户端和服务器端通信步骤,并封装了创建连接、发送接收数据流、断开连接等方法。所以,使用Socket包,程序员不仅能够创建用户端和服务器之间通信信道,还能实现发送和接收数据流等网络通信功效8。针对一个特定连接和通信过程,服务器和用户端程序里全部有一个Soc
30、ket对象,我们能够想象一下其场景,在通信过程中,有一条虚拟“光缆”构架在服务器和用户端之间,光缆两头全部插在了Socket这“插座”里。实际上,Java采取Socket包是对TCP协议深入抽象,更向程序员屏蔽了TCP通信细节,具体表现在以下两方面。一、 在使用Socket类里方法建立信道时候,Socket类屏蔽了经过三次握手建立信道全部步骤,直接向程序员返回信道类句柄(Socket类实例)或是犯错信息。二、 Socket类向程序员屏蔽了服务器和用户端之间物理硬件指标和底层连接方法,所以我们在使用Socket类开发网络程序时,能够简单地调用其提供方法来传输数据,而无须关心数据流传输和接收方法。
31、5、C/S模式20世纪90年代出现并快速占据主导地位一个计算模式为用户机/服务器模式,简称为C/S模式,它实际上就是把主机终端模式中原来全部集中在主机部分任务一分为二,保留在主机上部分负责集中处理和汇总运算,成为服务器;而下放到终端部分负责为用户提供友好交互界面,称为用户机。相对于以前模式,C/S模式最大改善是不再把全部软件全部装进一台计算机,而是把应用系统分成两个不一样角色和两个不一样地位:通常在运算能力较强计算机上安装服务器端程序,而在通常PC上安装用户机程序。正是因为个人PC机出现使用户机/服务器模式成为可能,因为PC机含有一定运算能力,用它替换了上面第一个模式哑终端后,就能够把主机端一
32、部分工作放在用户机端完成,从而减轻了主机负担,也增加了系统对用户响应速度和响应能力9。用户机和服务器之间经过对应网络协议来进行通讯。用户机向服务器发出数据请求,服务器将数据传送给用户机进行计算,计算完成,计算结果可返回给服务器。这种模式优点充足利用了用户机性能,使计算能力大大提升;另外,因为用户机和服务器之间通讯是经过网络协议进行,是一个逻辑联络,所以物理上在用户机和服务器两端是易于扩充。C/S模式是现在占主流网络计算模式。第3章 需求分析3.1 系统基础功效描述用户端能够实现注册,登录,即时聊天,相互之间收发文件,发送截图,查看历史聊天统计等功效。收发消息时,能够实现离线接收。服务器端应该建
33、立一个ServerSocket,而且不停进行侦听是否有用户端连接或断开连接(包含判定没有响应连接超时)。服务器端应该是一个信息发送中心,全部用户端信息全部传到服务器端,由服务器端依据要求分发信息。在后台管理系统,能够到对用户进行增删改查,查看在线用户,和踢用户下线。3.2 系统需求分析聊天系统不外乎两个方面,服务器端和用户端。简单分析一下两个方面所要完成任务,对设计这个程序来说,等于完成了二分之一。首先来看一下服务器端任务: (1)服务器端应该建立一个ServerSocket,而且不停进行侦听是否有用户端连接或断开连接(包含判定没有响应连接超时)。 (2)服务器端应该是一个信息发送中心,全部用
34、户端信息全部传到服务器端,由服务器端依据要求分发信息。以上就是服务器端最关键两个任务。不难看出,服务器端任务并不复杂。用户端应该完成工作包含: (1)和服务器端建立通信通道,向服务器端发送信息。 (2)接收来自服务器信息。相对服务器而言,用户端任务愈加简单,有了以上简单分析,能够知道,处理上述四个问题,即完成了该聊天系统关键。3.3 数据流图数据流图(DFD),是从数据传输和加工角度,以图形方法来表示系统逻辑功效、数据在系统内部逻辑流向和逻辑变换过程。是结构化系统分析方法关键表示工具及用于表示软件模型一个图示方法10。1. 顶层数据流图图3-1 系统顶层数据流图2. 用户端数据流图图3-2 用
35、户端数据流图3. 服务器端数据流图图3-3 服务器端数据流图3.4 数据字典数据字典作用关键是对数据步骤图中数据项,数据结构,数据流,处理逻辑,数据存放和外部实体等方面进行具体定义Error! Reference source not found.。建立数据字典目标是为了确保全局数据一致性和正确性。数据字典配以数据步骤图就能够从图形和文字两方面对系统做出完整定义和描述Error! Reference source not found.。1.离线消息表(1)数据项:MSG_ID含义说明:消息ID别名:消息ID类型:NUMBER(2)数据项:MSG_CONTENT含义说明:消息内容别名:消息内容类
36、型:VARCHAR2长度:(3)数据项:MSG_SENDFROM含义说明:消息发送者别名:消息发送者类型:INTEGER(4)数据项:MSG_SENDTO含义说明:消息接收者别名:消息接收者类型:INTEGER(5)数据项:MSG_SENDTIME含义说明:消息发送时间别名:消息发送时间类型:DATE(6)数据项:MSG_REMARK含义说明:备注别名:备注类型:VARCHAR2长度:3000(7)数据项:MSG_TYPE含义说明:消息类型,如是群聊消息还是私聊消息别名:消息类型类型:VARCHAR2长度:22.用户信息表(1)数据项:U_ID含义说明:用户ID别名:用户ID类型:NUMBER
37、(2)数据项:U_NAME含义说明:用户名别名:用户名类型:VARCHAR2长度:50(3)数据项:U_PWD含义说明:用户密码别名:用户密码类型:VARCHAR2长度:50(4)数据项:U_IP含义说明:IP地址别名:IP地址类型:VARCHAR2长度:50(5)数据项:U_STATE含义说明:用户状态别名:用户状态类型:VARCHAR2长度:50(6)数据项:U_GENDER含义说明:性别别名:性别类型:VARCHAR2长度:50(7)数据项:U_EMAIL含义说明:电子邮件别名:电子邮件类型:VARCHAR2长度:50 (8)数据项:U_LAST_LOGIN含义说明:最终一次登录别名:最
38、终一次登录类型:DATE(9)数据项:U_LAST_EXIT含义说明:最终一次退出别名:最终一次退出类型:DATE(10)数据项:U_REMARKE含义说明:备用别名:备用类型:VARCHAR2长度:3000(11)数据项:U_SIGNATURE含义说明:个性署名别名:个性署名类型:VARCHAR2长度:100(12)数据项:U_HEAD_IMG含义说明:用户头像别名:用户头像类型:VARCHAR2长度:100(13)数据项:U_TYPE含义说明:类型别名:类型类型:VARCHAR2长度:50(14)数据项:U_BIRTHDAY含义说明:用户生日别名:用户生日类型:DATE3.5 用例图1.一
39、般用户用例图: 图3-4 一般用户用例图2.后台管理员用例图:图 3-5 后台用户用例图第4章 系统概要设计4.1 系统总体步骤图图4-1 系统总体步骤图4.2 系统功效模块划分本系统关键分为注册、登录、聊天、后台管理四大模块。整个系统具体结构图4-2所表示。图4-2 系统总体功效模块划分各个功效模块设计以下:1、注册模块在登录界面上有注册按钮,用户能够点击注册,填入个人相关资料,提交给服务器。服务器接收到信息后经过纯JDBC方法或JDBCODBC桥接方法连接数据库并添加统计。 用户注册步骤图图4-3: 图 4-3 用户注册步骤图2、登录模块用户在用户端输入账号和密码,然后建立和服务器端连接,
40、告诉服务器实施登录操作。服务器收到后,开始经过JDBC读取数据库,然后和用户输入信息进行比对,假如成功,便打开主程序窗口。然后用户端向服务器请求读取好友列表,服务器收到该请求后从数据库中取出该用户好友列表,然后向用户端发送这些信息,用户收到后就在主窗口显示好友。 用户登录步骤图图4-4: 图4-4 登录步骤图3、实时聊天模块用户端首先发送消息到服务器端,服务器端程序判定用户端发来信息类型,假如是一般聊天消息就依据发送者信息和接收者信息进行消息转发。比如用户端A向用户端B发送消息处理过程以下:首先A向服务器发送消息,服务器程序判定消息类型,假如是一般聊天消息,则解析该消息,得到该消息发送者A,接
41、收者B。接着判定B是否在线,假如在线就将消息发送过去,不然将消息存入数据库。B接收到A发来信息,假如是未建立对话窗口,则在屏幕右下角出现弹窗提醒。另外还有群组聊天功效,能够在“官方聊天室”功效中实现一对多聊天,即在聊天室发送消息是面向全部在线用户。 用户聊天步骤图图4-5: 图4-5 聊天步骤图4、 系统后台管理模块 (1)系统服务:服务器端管理员能够在这里开启后台服务器,公布聊天室公告或弹窗公告给全部在线用户。假如未开启服务器,则在用户端无法登录,并会返回对应消息提醒。 (2)用户管理:能够依据用户名或用户ID查询已注册用户具体信息,而且能够修改、保留相关信息。这是一个对数据库简单增删改查操
42、作。 第5章 系统具体设计和实现5.1 系统设计和实现本系统关键分为注册、登录、聊天、后台管理四大模块。下面具体介绍各个模块具体实现。5.1.1 注册模块正如我们使用QQ一样,使用之前我们要申请一个QQ号。本系统即使没有设计这么复杂步骤,不过也必需在登录前注册账号。只有后台数据库里存在用户才能使用本系统。 注册界面图5-1所表示,填完消息点击注册即可。 图5-1 用户注册界面另外,信息填写不完整或填写有误将有错误提醒。此处调用了JOptionPane对象showMessageDialog方法,经过设置该方法参数显示不一样类型提醒框。邮箱地址检测用到了Java里面正则表示式相关知识,使用Patt
43、ern对象对邮箱地址格式正则式进行编译,再调用Matcher对象matches方法判定用户输入邮箱是否和该格式匹配。注册完成后,经过JDBC技术连接MySQL数据库将统计插入数据库表中。注册功效关键代码(注册成功窗口)代码以下:private class RegSuccess extends JDialog implements ActionListenerprivate JTextArea txtInfo = new JTextArea();private JButton btnLogin = new JButton(直接登录);private JButton btnReturn = new
44、 JButton(返回登陆界面);private RegUser user;public RegSuccess(RegUser user,Frame owner, boolean modal) super(owner,modal);this.user = user;setSize(250,190);setResizable(false);Toolkit tk=Toolkit.getDefaultToolkit();setLocation(tk.getScreenSize().width-getSize().width)/2,(tk.getScreenSize().height-getSize(
45、).height)/2);setTitle(注册信息);txtInfo.setText(恭喜!+user.getRealname()+,注册成功!n+用户昵称:+user.getNickname()+n+登陆号码:+user.getJqnum()+n+登陆密码:+user.getPassword()+n+请妥善保管您号码和密码!);txtInfo.setEditable(false);txtInfo.setOpaque(true);txtInfo.setBackground(this.getBackground();txtInfo.setPreferredSize(new Dimension(200,100);txtInfo.setBorder(new TitledBorder(new LineBorder(Color.DARK_GRAY), 注册信息 );setLayout(new FlowLayout(FlowLayout.CENTER,10,10);btnLogin.addActionListener(this);