黄瑞骐毕业设计.docx
- 文档编号:3933600
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:24
- 大小:429.75KB
黄瑞骐毕业设计.docx
《黄瑞骐毕业设计.docx》由会员分享,可在线阅读,更多相关《黄瑞骐毕业设计.docx(24页珍藏版)》请在冰豆网上搜索。
黄瑞骐毕业设计
武汉工程大学邮电与信息工程学院
毕业设计(论文)
基于B/S模式即时通讯软件的设计与实现
DesignandImplementationofNetworkChattingSystemBasedonB/SModel
学生姓名黄瑞骐
学号0845060107
专业班级网络工程0801
指导教师孙萍
2012年5月
作者声明
本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
如本毕业设计(论文)引起的法律结果完全由本人承担。
毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。
特此声明。
作者专业:
网络工程
作者学号:
0845060107
作者签名:
____年___月___日
摘要
即时通讯InstantMessaging是目前Internet上最为流行的通讯方式,而各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。
随着互联网的发展,即时通讯的运用将日益广泛,即时通讯软件业方兴未艾。
此系统是基于B/S的模式的即时通讯系统,通过IE等浏览器直接完成客户端的登录、数据传输,使用JAVA语句开发,使用Eclipse工具,数据库方面用Mysql数据库管理软件,通过JDBC连接,便捷了用户之间的通讯和交友。
在系统设计与建模过程中,是以JSP开发的经典MVC三层开发模式来开发的。
本即时通讯软件系统共由四个模块组成:
登录模块,验证模块,在线查找模块和聊天模块。
登录模块实现系统通过验证用户名和密码进行登录,验证模块实现对用户的校验和认证。
在线查找模块采用JavaApplet小程序技术,嵌入在html文档中在浏览器中运行,实现用户个人信息的管理,即时消息的发送与接受。
通信模块采用Java编写,实现即时消息的转发与离线信息保存。
关键词:
B/S;JSP;IM;即时通讯
Abstract
InstantMessagingisnowInstantcommunicationontheInternetthemostpopularmethodofcommunication,andallkindsofInstantMessagingsoftwarealsoemergeinendlessly;Serviceprovidersalsoprovidemoreandmorerichcommunicationservicefunctions.WiththedevelopmentoftheInternet,theuseofinstantcommunicationwillbemorewidely,instantmessagingsoftwareisintheascendant.
ThesystemisbasedonB/Smodelofinstantmessagingsystem,throughtheIE,theclientbrowserdonedirectlylogin,datatransmission,useJAVAstatementdevelopment,useEclipsetools,databasewithMysqldatabasemanagementsoftware,throughtheJDBCconnection,convenientcommunicationsbetweentheuserandmakingfriends.
Insystemdesignandmodelingprocess,isbasedonJSPdevelopmentoftheclassicMVCthreelayerdevelopmentmodeltodevelopment.Thisinstantmessagingsoftwaresystemaltogetherbyfourmodules:
loginmodule,validationmodule,onlinesearchmoduleandchatmodule.Loginmoduleimplementssystemthroughtheauthenticationusernameandpasswordtologin,validationtotheusermoduleimplementscalibrationandauthentication.OnlinesearchmoduleUSESJavaAppletsmallprogramtechnology,embeddedinHTMLdocumentruninthebrowser,realizecustomerinformationmanagement,sendingandreceivingtheinstantmessages.CommunicationmoduleUSESJavawrite,realizetheforwardingofinstantmessagingandofflineinformationstorage.
Keywords:
B/S;theJSP;IM;InstantMessaging
第1章绪论
即时通讯软件,几乎是每一个上网用户都必备的联络工具。
即时通讯软件除了能够让您迅速地在网上找到自己的朋友和工作伙伴,还可以实时交谈和传递信息,而且,现在不少即时通讯软件还集成了文件共享、语音聊天、网络会议等功能。
截止到目前,全球约有近3亿多人使用即时通讯软件进行交流,正因为即时通讯软件拥有数以亿计的用户和迅速增长的市场,所以各个公司都盯上了中国这个潜在的最大市场,一时间,即时通讯市场硝烟四起。
1.1国内外的即时通信软件发展趋势
即时通讯软件最早发布于1996年11月15日,以色列特拉维文的MirabilisLtd.发表了一个题为《E.TSURFHOME:
MIRABILISLTD.PROVIDESNEWSOLUTIONSFORPEER-TO-PEERINTERNETCOMMUNICATIONS》的新闻稿,同时发布了他们新产品ICQ(ISeekYou)的Beta测试版。
这天标志着Internet上的第一个成热的即时通讯系统(InstantMessageSystem)的诞生。
即时通讯服务在诞生之后的几年时间得到了迅猛发展,成为新增Internet用户的3个主要应用之一(WEB,电子邮件和即时通讯)。
在国内,1999年2月,深圳腾讯公司正式发布OICQ99betabuild0210,开通腾讯即时通讯服务。
2000年5月,腾讯QQ同时在线用户突破10万;2001年2月l0日,腾讯QQ同时在线用户突破100万。
2004年4月份腾讯QQ同时在线人数最高记录已经突破了600万大关,现在腾讯公司正在把即时通讯系统往移动通讯方向扩展,如今已经将即时通讯与手机短信息(SMS)成功结合起来。
即时通讯软件涉及和影响的领域已近越来越广,其竞争也越来越激烈。
国内QQ最大的敌手朗玛UC从2001年开始研发,2002年的12月份UC正式发布,并且首创了很多技术:
UC是国内第一个做场景聊天的;UC是第一个把同学录和校友录结合的;第一个把即时通讯与休闲游戏相结合的;第一个把发送动画与即时通讯相结合的。
在一年的发展里,UC一度达到峰值在线30万人,注册用户达到7000万。
但是纵观这些即时通讯软件业,都是基于C/S模式的,需要下载客户端进行安装,用户名、密码、聊天记录等也是存放在本地机器上,在安全性和方便性上都有所欠缺。
设计并开发一个基于WEB的即时通讯平台,对于现阶段的学习和研究,都是极为有意义的,基于这个前提和起因.
然而在众多的即时通信软件中很少有服务提供商同时对Windows、Linux或者Mac操作系统提供支持。
抛开市场因素,绝大多数的即时通信软件都是基于C/S(客户/服务器)方式的,这种的方式不利于软件跨平台移植,很容易出现兼容性的问题,而且在C/S方式下臃肿的客户端也越来越成为众矢之的。
与其不同的是,B/S方式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要有一个浏览器(Browser),如Netscape,IE,Firefox或Opera,而不需要考虑用户使用了哪一种操作系统。
因此使用B/S方式开发即时通信软件是解决不同操作系统用户之间进行即时通信障碍的有效途径之一。
开发基于B/S方式的即时通信软件具有相当重要的现实意义,它可以实现不同操作系统用户之间无障碍的交流,免除了下载安装客户端的步骤,给用户一个更加轻便的方式进行沟通。
另外,基于B/S方式的即时通信软件也可以作为企业客户服务部门的一个重要组成部分,使用它可以缩短客户与企业间的交流成本,提高企业的反应速度更好地为客户服务。
1.2本论文的研究内容
基于以上考虑,本系统需要提供一套完整的用户管理系统,实现用户的注册、登录以及个人信息的管理;一个简单易用友好的系统即便是入门级的用户也可以轻易掌握客户端界面;一个强大快捷提供数据包转发与转存的服务器端方便了用户的使用。
要实现基于B/S方式的即时通信软件就需要选择一套与互联网联系密切的开发环境。
选择Tomcat做Web服务器实现对用户的管理。
这样的选择有不仅能有效的发挥软件强大的网络功能,还可以极大的节约开发成本。
同样的,基于B/S方式的即时通讯系统需要做到多平台兼容,就必须要选择一个能在任意系统上都可以运行的开发软件,而Java号称“一次编译,处处运行”自然是开发工具中的首选。
但并不是所有问题都有简单明显的解决方法,事实上,许多问题不可能在预定的系统规模之内解决。
如果问题没有可行的解,那么花费在这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。
由于开发软件所需资源缺乏和交付时间限制的困扰,使得计算机软件的开发变得比较困难。
由于采用了基于B/S方式的结构,必定会对客户端有一定的限制(只能在浏览器内运行)。
考虑到这一点,可以选择使用JavaApplet和socket技术进行设计。
JavaApplet可以为本即时通信软件提供一个易用的客户端界面;通过socket编程技术可以简单的实现网络信息的传递。
选用以上两种技术手段可以确保程序在浏览器中的运行效果,而又不用担心系统功能会被削弱。
在开发软件的过程中,人们使用了许多保证软件质量的方法分析、设计和实现软件,但难免还会在工作中犯错误。
这样,在软件产品中就会隐藏许多错误和缺陷,尤其是对规模大、复杂性高的软件更是如此。
所以,必须进行认真、计划、彻底的软件测试。
本系统主要通过聊天主界面,输入呢称,和聊天信息,通过点击确定,跳转到SERVLET里,调用了DAO的增删改查方法,然后进入DAO的方法。
通过连通机制连通数据库并向后台发送语句。
实现使用功能,方便人们实现在线聊天。
第2章系统的开发环境及工具简介
2.1开发环境
Tomcat服务器是一个免费的开放源代码的轻量级Web应用服务器,它是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。
它在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
2.2开发工具介绍
2.2.1Java简介
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
用Java实现的HotJava浏览器(支持JavaApplet)显示了Java的魅力:
跨平台、动感的Web、Internet计算[2]。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持JavaApplet。
另一方面,Java技术也不断更新。
Java分为三个体系J2SE(Java2StandardEdition),J2EE(Java2Platform,EnterpriseEdition),J2ME(Java2MicroEdition)。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1x版发展到1.2版。
目前常用的Java平台基于Java1.4,最近版本为Java1.6。
2.2.2Applet简介
Applet是采用Java创建的基于HTML的程序,可通过因特网下载并在接收计算机的浏览器软件中运行。
Applet典型用于为万维网网页页面定制或添加交互格式元素。
包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。
当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。
由于Applet是在用户的计算机上执行的,因此它的执行速度不受网络带宽或者Modem存取速度的限制。
用户可以更好地欣赏网页上Applet产生的多媒体效果。
在JavaApplet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。
Applet还提供了名为抽象窗口工具箱(AbstractWindowToolkit,AWT)的窗口环境开发工具。
AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。
2.2.3JSP简介
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
2.2.4JDBC简介
JDBC(JavaDataBaseConnectivity,Java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。
程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。
同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。
实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。
所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。
而JDBC正是作为此种用途的机制。
它扩展了Java的功能。
例如,用Java和JDBCAPI可以发布含有Applet的网页,而该Applet使用的信息可能来自远程数据库企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中。
2.2.5MySQL简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
目前MySQL被广泛地应用在Internet上的中小型网站中。
MySQL的特性如下:
(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
(2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。
(3)为多种编程语言提供了API。
这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
(4)支持多线程,充分利用CPU资源。
(5)优化的SQL查询算法,有效地提高查询速度。
(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
(7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
(8)提供用于管理、检查、优化数据库操作的管理工具。
(9)可以处理拥有上千万条记录的大型数据库。
2.3MVC三层模块结构
2.3.1view层
这一层主要功能是基于JSP技术的网页显示。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
View层的功能主要用于显示网页和内容。
2.3.2control层
这一层主要通过servlet这个控件来实现,servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
它底下包含了DAO.ADD和DAO.FINDALL()等包,起到连接的作用。
2.3.3model层
这一层是模型层,包括DAO、BEAN,向数据库发送SQL语句,执行增删改查的功能。
BEAN是实体类的包,实体类是与数据库表的字段相对应。
它是实体类,用来保存数据库表格的中一条记录的所有字段的数据。
并且可以验证这条记录数据的完整性。
第3章功能需求分析
3.1总体需求概述
本即时通讯系统包含服务器端和客户端两个部分,由于服务器主要是用来数据的存储用户数据与协调用户之间的通讯,以及提供消息中转功能,不需要进行界面设计;客户端需要给用户一个方便、实用的界面。
3.2详细功能需求介绍
3.2.1登录模块
该模块实现验证用户名和密码是否正确,对用户的一些不正确输入进行判断。
例如:
用户名、密码为空,判断用户是否在线。
登陆模块如图3.1所示
用户身份验证结果
NO
no
显示错误信息
显示聊天页面
图3.1登陆模块
3.2.2验证模块
该模块实现新用户的注册,对用户的一些不正确输入进行判断。
例如:
用户名、密码为空;密码与验证密码不一致等问题;判断用户是否已经注册。
特殊需求:
(1)用户名字符的位数:
8-10,必填。
(2)密码字符的位数:
6-10,必填,并以掩码“*”显示。
(3)IP地址由数字和“.”组成,格式为xxx.xxx.xxx.xxx,共15位,xxx的范围:
0-255,必填,
(4)端口号为数字,范围8000-9999,必填。
前置条件:
(1)以合法身份登录操作系统,启动客户端页面。
后置条件:
(1)用户登录成功,显示客户端主窗体。
3.2.3在线查找模块
用户在线主要包含联机、忙碌和离开等状态,在线好友维护部分包含当前在线好友的显示、用户信息的修改、实时在线状态更新、在线、离线)、搜索添加好友以及删除好友等功能。
自动设置服务器端套接字,启动服务后监听客户端的请求,同时显示连接状态和接收请求的信息。
显示服务器端的IP地址和端口号,显示当前在线人员的详细信息,用户管理如图3.2所示。
图3.2用户管理
3.2.4聊天模块
聊天功能是本即时通讯系统的主要功能、也是整个通讯系统的核心,是在线的双方进行信息传递的功能,只要是在线的好友双方都可以进行聊天,并且为每个好友提供单独的聊天窗口,在聊天窗口中,主要提供输入聊天信息、显示聊天信息以及显示对方昵称和发送时间等功能。
此外,如果好友处于下线状态,用户依然可以向对方发送留言信息,通过服务器的信息中转服务让该好友下次上线时,就会收到对方的留言信息。
客户聊天流程图如图3.3所示。
图3.3客户端聊天流程图
3.3MySQL与JSP、Java的连接
JDBCAPI既支持数据库访问的两层模型(C/S),同时也支持三层模型(B/S)。
在两层模型中,Javaapplet或应用程序将直接与数据库进行对话。
这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通讯。
用户的SQL语句被送往数据库中,而其结果将被送回给用户。
数据库可以位于另一台计算机上,用户通过网络连接到上面。
这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。
网络可以是I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黄瑞骐 毕业设计