




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉工程大学邮电与信息工程学院毕业设计论文基于B/S模式即时通讯软件的设计与实现Design and Implementation of Network Chatting System Based on B/S Model学生姓名 黄瑞骐 学 号 0845060107 专业班级 网络工程0801指导教师 孙萍 2021年5月 作者声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术标准的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何奉献均已在论文中作了明确的
2、说明并表示了谢意。如本毕业设计论文引起的法律结果完全由本人承当。毕业设计论文成果归武汉工程大学邮电与信息工程学院所有。特此声明。 作者专业: 网络工程 作者学号: 0845060107 作者签名: _年_月_日摘 要即时通讯Instant Messaging是目前Internet上最为流行的通讯方式,而各种各样的即时通讯软件也层出不穷;效劳提供商也提供了越来越丰富的通讯效劳功能。随着互联网的开展,即时通讯的运用将日益广泛,即时通讯软件业方兴未艾。此系统是基于B/S的模式的即时通讯系统,通过IE等浏览器直接完成客户端的登录、数据传输,使用JAVA语句开发,使用Eclipse工具,数据库方面用My
3、sql数据库管理软件,通过JDBC连接,便捷了用户之间的通讯和交友。在系统设计与建模过程中,是以JSP开发的经典MVC三层开发模式来开发的。本即时通讯软件系统共由四个模块组成:登录模块,验证模块,在线查找模块和聊天模块。登录模块实现系统通过验证用户名和密码进行登录,验证模块实现对用户的校验和认证。在线查找模块采用Java Applet小程序技术,嵌入在html文档中在浏览器中运行,实现用户个人信息的管理,即时消息的发送与接受。通信模块采用Java编写,实现即时消息的转发与离线信息保存。 关键词:B/S;JSP;IM;即时通讯AbstractInstant Messaging is now In
4、stant communication on the Internet the most popular method of communication, and all kinds of Instant Messaging software also emerge in endlessly; Service providers also provide more and more rich communication service functions. With the development of the Internet, the use of instant communicatio
5、n will be more widely, instant messaging software is in the ascendant.The system is based on B/S model of instant messaging system, through the IE, the client browser done directly login, data transmission, use JAVA statement development, use Eclipse tools, database with Mysql database management so
6、ftware, through the JDBC connection, convenient communications between the user and making friends.In system design and modeling process, is based on JSP development of the classic MVC three layer development model to development. This instant messaging software system altogether by four modules: lo
7、gin module, validation module, online search module and chat module. Login module implements system through the authentication user name and password to login, validation to the user module implements calibration and authentication. Online search module USES Java Applet small program technology, emb
8、edded in HTML document run in the browser, realize customer information management, sending and receiving the instant messages. Communication module USES Java write, realize the forwarding of instant messaging and offline information storage.Key words: B / S; the JSP; IM; Instant Messaging目 录第1章 绪论1
9、1.1国内外的即时通信软件开展趋势11.2本论文的研究内容2第2章 系统的开发环境及工具简介42.1 开发环境42.2 开发工具介绍42.2.1 Java简介42.2.2 Applet简介52.2.3 JSP简介52.2.4 JDBC简介62.2.5 MySQL简介62.3 MVC三层模块结构72.3.1 view层72.3.2 control 层82.3.3 model 层8第3章 功能需求分析93.1 总体需求概述993.2.1 登录模块93.2.2 验证模块103.2.3 在线查找模块103.2.4 聊天模块113.3 MySQL与JSP、Java的连接12第4章 后台数据库的设计141
10、44.1.1 users表154.1.2 records表154.1.3 online表154.1.4 数据库层164.1.5 模型层17第5章 系统详细实现195.1 流程示意图195.2 各个模块的实现195.2.1 登录页面205.2.2 聊天页面215.2.3 查看在线用户235.2.4 效劳器端的显示25结 论26致谢27参考文献28第1章 绪论即时通讯软件,几乎是每一个上网用户都必备的联络工具。即时通讯软件除了能够让您迅速地在网上找到自己的朋友和工作伙伴,还可以实时交谈和传递信息,而且,现在不少即时通讯软件还集成了文件共享、语音聊天、网络会议等功能。截止到目前,全球约有近3亿多人使
11、用即时通讯软件进行交流,正因为即时通讯软件拥有数以亿计的用户和迅速增长的市场,所以各个公司都盯上了中国这个潜在的最大市场,一时间,即时通讯市场硝烟四起。即时通讯软件最早?E.T SURF HOME:MIRABILIS LTD. PROVIDES NEW SOLUTIONS FOR PEER-TO-PEER INTERNET COMMUNICATIONS?的新闻稿,同时发布了他们新产品ICQ(I Seek You)的Beta测试版。这天标志着Internet上的第一个成热的即时通讯系统Instant Message System的诞生。即时通讯效劳在诞生之后的几年时间得到了迅猛开展,成为新增In
12、ternet用户的3个主要应用之一(WEB,电子邮件和即时通讯)。在国内,1999年2月,深圳腾讯公司正式发布OICQ99 beta build 0210,开通腾讯即时通讯效劳。2000年5月,腾讯QQ同时在线用户突破10万;2001年2月l0日,腾讯QQ同时在线用户突破100万。2004年4月份腾讯QQ同时在线人数最高记录已经突破了600万大关,现在腾讯公司正在把即时通讯系统往移动通讯方向扩展,如今已经将即时通讯与 短信息(SMS)成功结合起来。即时通讯软件涉及和影响的领域已近越来越广,其竞争也越来越剧烈。国内QQ最大的敌手朗玛UC从2001年开始研发,2002年的12月份UC正式发布,并且
13、首创了很多技术:UC是国内第一个做场景聊天的;UC是第一个把同学录和校友录结合的;第一个把即时通讯与休闲游戏相结合的;第一个把发送动画与即时通讯相结合的。在一年的开展里,UC一度到达峰值在线30万人,注册用户到达7000万。但是纵观这些即时通讯软件业,都是基于C/S模式的,需要下载客户端进行安装,用户名、密码、聊天记录等也是存放在本地机器上,在平安性和方便性上都有所欠缺。设计并开发一个基于WEB的即时通讯平台,对于现阶段的学习和研究,都是极为有意义的,基于这个前提和起因.然而在众多的即时通信软件中很少有效劳提供商同时对Windows、Linux或者Mac操作系统提供支持。抛开市场因素,绝大多数
14、的即时通信软件都是基于C/S客户/效劳器方式的,这种的方式不利于软件跨平台移植,很容易出现兼容性的问题,而且在C/S方式下臃肿的客户端也越来越成为众矢之的。与其不同的是,B/S方式统一了客户端,将系统功能实现的核心局部集中到效劳器上,简化了系统的开发、维护和使用。客户机上只要有一个浏览器Browser,如Netscape,IE,Firefox或Opera,而不需要考虑用户使用了哪一种操作系统。因此使用B/S方式开发即时通信软件是解决不同操作系统用户之间进行即时通信障碍的有效途径之一。开发基于B/S方式的即时通信软件具有相当重要的现实意义,它可以实现不同操作系统用户之间无障碍的交流,免除了下载安
15、装客户端的步骤,给用户一个更加轻便的方式进行沟通。另外,基于B/S方式的即时通信软件也可以作为企业客户效劳部门的一个重要组成局部,使用它可以缩短客户与企业间的交流本钱,提高企业的反响速度更好地为客户效劳。基于以上考虑,本系统需要提供一套完整的用户管理系统,实现用户的注册、登录以及个人信息的管理;一个简单易用友好的系统即便是入门级的用户也可以轻易掌握客户端界面;一个强大快捷提供数据包转发与转存的效劳器端方便了用户的使用。要实现基于B/S方式的即时通信软件就需要选择一套与互联网联系密切的开发环境。选择Tomcat做Web效劳器实现对用户的管理。这样的选择有不仅能有效的发挥软件强大的网络功能,还可以
16、极大的节约开发本钱。同样的,基于B/S方式的即时通讯系统需要做到多平台兼容,就必须要选择一个能在任意系统上都可以运行的开发软件,而Java号称“一次编译,处处运行自然是开发工具中的首选。但并不是所有问题都有简单明显的解决方法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费在这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。由于开发软件所需资源缺乏和交付时间限制的困扰,使得计算机软件的开发变得比拟困难。由于采用了基于B/S方式的结构,必定会对客户端有一定的限制只能在浏览器内运行。考虑到这一点,可以选择使用Java Applet和socket技术进行设计。J
17、ava Applet可以为本即时通信软件提供一个易用的客户端界面;通过socket编程技术可以简单的实现网络信息的传递。选用以上两种技术手段可以确保程序在浏览器中的运行效果,而又不用担忧系统功能会被削弱。在开发软件的过程中,人们使用了许多保证软件质量的方法分析、设计和实现软件,但难免还会在工作中犯错误。这样,在软件产品中就会隐藏许多错误和缺陷,尤其是对规模大、复杂性高的软件更是如此。所以,必须进行认真、方案、彻底的软件测试。本系统主要通过聊天主界面,输入呢称,和聊天信息,通过点击确定,跳转到SERVLET里,调用了DAO的增删改查方法,然后进入DAO的方法。通过连通机制连通数据库并向后台发送语
18、句。实现使用功能,方便人们实现在线聊天。第2章 系统的开发环境及工具简介2.1 开发环境Tomcat 效劳器是一个免费的开放源代码的轻量级Web 应用效劳器,它是Apache 软件基金会Apache Software Foundation的Jakarta 工程中的一个核心工程,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 标准总是能在Tomcat 中得到表达。它在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件效劳等开发应用系统常用
19、的功能;而且它还在不断的改良和完善中,任何一个感兴趣的程序员都可以更改它或在其中参加新的功能。2.2 开发工具介绍2.2.1 Java简介Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言以下简称Java语言和Java平台的总称。用Java实现的HotJava浏览器支持Java Applet显示了Java的魅力:跨平台、动感的Web、Internet计算2。从此,Java被广泛接受并推动了Web的迅速开展,常用的浏览器现在均支持Java Applet。另一方面,Java技术也不断更新。Java分为三个体系J2SE(Java2 Standard Editi
20、on),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)。Java平台由Java虚拟机Java Virtual Machine和Java 应用编程接口Application Programming Interface、简称API构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的 标准接口,可分为根本局部和扩展局部。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有 的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。J
21、ava应用编程接口已经从1.1x版开展到1.2版。目前常用的Java平台基 于Java1.4,最近版本为Java1.6。2.2.2 Applet简介Applet是采用Java创立的基于HTML的程序,可通过因特网下载并在接收计算机的浏览器软件中运行。Applet典型用于为万维网网页页面定制 或添加交互格式元素。包含Applet的网页被称为Java- powered页,可以称其为Java支持的网页。当用户访问这样的网页时, Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,因此它的执行速度不受网络带宽或者Modem存取
22、速度的限制。用户可以更好地欣赏网页上Applet产生的多媒体效果。在Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。 Applet还提供了名为抽象窗口工具箱Abstract Window Toolkit,AWT的窗口环境开发工具。 AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。2.2.3 JSP简介JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在传统的网页HTML文件(*.htm,*.html)中插入Java
23、程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的与Java Servlet一样,是在效劳器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和 scriptlets访问存在于效劳端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示别离,支持可重用的基于组件的设计,使基于Web的应用程序的 开发变得迅速和容易。Web效劳
24、器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 2.2.4 JDBC简介JDBCJava Data Base Connectivity,Java数据库连接是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可 以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API编写数据库应用程序。有了JDBC,向各种关系
25、数据发送SQL语句就是一件很容易的事。程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行的优势。JDBC使用已有的 SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java 具有巩固、平安、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对
26、话的方法。而 JDBC 正是作为此种用途的机制。它扩展了 Java 的功能。例如,用 Java 和JDBC API可以发布含有 Applet 的网页,而该 Applet 使用的信息可能来自远程数据库企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中。2.2.5 MySQL简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。MySQL的特性如下:1使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。2支持AIX、FreeBSD、HP-UX、Linux、Mac
27、 OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。3为多种编程语言提供了API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。4支持多线程,充分利用CPU资源。5优化的SQL查询算法,有效地提高查询速度。6既能够作为一个单独的应用程序应用在客户端效劳器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。7提供TCP/IP、ODBC和JDBC等多种数据库连接途径
28、。8提供用于管理、检查、优化数据库操作的管理工具。9可以处理拥有上千万条记录的大型数据库。2.3 MVC三层模块结构2.3.1 view层这一层主要功能是基于JSP技术的网页显示。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于效劳端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示别离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP与JavaServlet一样,是在效劳器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
29、JSP与JavaServlet一样,是在效劳器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。View层的功能主要用于显示网页和内容。2.3.2 control 层这一层主要通过servlet这个控件来实现,servlet是一种效劳器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求Web浏览器或其他 客户程序与效劳器响应 效劳器上的数据库或应用程序的中间层。 Servlet是位于Web 效劳器内部的效劳器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web效劳器进行加载,该Web效
30、劳器必须包含支持Servlet的Java虚拟机。它底下包含了DAO.ADD和DAO.FINDALL等包,起到连接的作用。2.3.3 model 层这一层是模型层,包括DAO、BEAN,向数据库发送SQL语句,执行增删改查的功能。BEAN是实体类的包,实体类是与数据库表的字段相对应。它是实体类,用来保存数据库表格的中一条记录的所有字段的数据。并且可以验证这条记录数据的完整性。第3章 功能需求分析3.1 总体需求概述本即时通讯系统包含效劳器端和客户端两个局部,由于效劳器主要是用来数据的存储用户数据与协调用户之间的通讯,以及提供消息中转功能,不需要进行界面设计;客户端需要给用户一个方便、实用的界面。
31、3.2详细功能需求介绍3.2.1 登录模块该模块实现验证用户名和密码是否正确,对用户的一些不正确输入进行判断。例如:用户名、密码为空,判断用户是否在线。用户身份验证结果 NOnoYes 显示错误信息显示聊天页面图3.1 登陆模块3.2.2 验证模块该模块实现新用户的注册,对用户的一些不正确输入进行判断。例如:用户名、密码为空;密码与验证密码不一致等问题;判断用户是否已经注册。 特殊需求:(1)用户名字符的位数:8-10,必填。(2)密码字符的位数:6-10,必填,并以掩码“*显示。(3 )IP地址由数字和“.组成,格式为xxx.xxx.xxx.xxx,共15位,xxx的范围:0-255,必填,
32、(4) 端口号为数字,范围80009999,必填。 前置条件:(1) 以合法身份登录操作系统,启动客户端页面。 后置条件:(1) 用户登录成功,显示客户端主窗体。3.2.3 在线查找模块用户在线主要包含联机、忙碌和离开等状态,在线好友维护局部包含当前在线好友的显示、用户信息的修改、实时在线状态更新、在线、离线)、搜索添加好友以及删除好友等功能。自动设置效劳器端套接字,启动效劳后监听客户端的请求,同时显示连接状态和接收请求的信息。显示效劳器端的IP地址和端口号,显示当前在线人员的详细信息,用户管理如图3.2所示。用户用户管理聊天管理上下线通知好友管理注册新用户图3.2 用户管理3.2.4 聊天模
33、块 聊天功能是本即时通讯系统的主要功能、也是整个通讯系统的核心,是在线的双方进行信息传递的功能,只要是在线的好友双方都可以进行聊天,并且为每个好友提供单独的聊天窗口,在聊天窗口中,主要提供输入聊天信息、显示聊天信息以及显示对方昵称和发送时间等功能。此外,如果好友处于下线状态,用户依然可以向对方发送留言信息,通过效劳器的信息中转效劳让该好友下次上线时,就会收到对方的留言信息。客户聊天流程图如图3.3所示。图3.3 客户端聊天流程图3.3 MySQL与JSP、Java的连接JDBC API 既支持数据库访问的两层模型C/S,同时也支持三层模型B/S。在两层模型中,Java applet或应用程序将
34、直接与数据库进行对话。这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通讯。用户的SQL语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/效劳器配置,其中用户的计算机为客户机,提供数据库的计算机为效劳器。网络可以是 Intranet它可将公司职员连接起来,也可以是 Internet。 JDBC(Java DataBase Connectivity)是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类与接口组成。JDBC是一种标准,它让各数据库厂商为Java程序员提供标准的数据库访问类和接口。JDB
35、C编写数据库程序的方法一般分为三个步骤: 1建立数据源建立数据源是指建立ODBC数据源。 2建立连接与数据库建立 (String url,String user,String password)。3执行SQL语句JDBC提供了Statement类来发送SQL语句,Statement类的对象由createStatement方法创立。Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement、PreparedStatement它从 Statement 继承而来和 CallableState
36、ment它从 PreparedStatement 继承而来。它们都专用于发送特定类型的 SQL 语句: Statement 对象用于执行不带参数的简单 SQL 语句;PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;CallableStatement 对象用于执行对数据库已存在的存储过程的调用。Statement 接口提供了执行语句和获取结果的根本方法。PreparedStatement 接口添加了处理 IN 参数的方法;而 CallableStatement 添加了处理 OUT 参数的方法。有些 DBMS 将已存储过程中的每条语句视为独立的语句;而另
37、外一些那么将整个过程视为一个复合语句。在启用自动提交时,这种差异就变得非常重要,因为它影响什么时候调用 commit 方法。在前一种情况中,每条语句单独提交;在后一种情况中,所有语句同时提交。第4章 后台数据库的设计数据库是数据库应用程序的重要组成局部,设计结构合理、功能齐全的数据库对于提高数据库应用程序的开发效率和程序的性能都是非常重要的10。根据用户需求,确定数据库中要保存的数据信息。对用户需求进行分析是数据库设计的第一个阶段。不断地调查与研究用户需求,了解企业运作流程和系统需求,是设计概念模型的根底。设计数据的概念模型。概念模型是按用户的观点来对数据建模,概念模型是用于进行信息世界建模的
38、工具,对数据库的设计具有深刻的影响。 表的内容设计涉及到了整型INTEGER,可变字符型VARCHAR,数据型TEXT和日期型DATA。本系统的数据库由三个表组成:users、records、online。用户密码用户名姓名聊天性别注册传输效劳器效劳日期用户邮箱数据库用户名记录表E-R图如图4.1所示。效劳内容效劳备注 图4.1 E-R图4.1.1 users表该表的主要作用是保存用户注册的根本信息。该表包含ID用户名,psw MD5处理后的密码,email电子邮件,sex性别,Info用户信息和Data注册时间六个字段。其结构如表4.2所示。表4.2 users表字段中文名称字段英文名称字段
39、类型字段长度是否为空主键用户名IDVarchar20不是是密码pswVarchar32不是电子邮件emailVarchar20不是性别sexVarchar1不是用户信息InfoTEXT不是注册时间DataDATA4.1.2 records表该表主要用于记录用户离线时收到的信息,也可以保存用户的聊天记录。该表包含ID用户名,record记录两个字段。其ID字段和users表中ID字段相对应。其结构如表4.3所示。表4.3 records表字段中文名称字段英文名称字段类型字段长度是否为空主键用户名IDVarchar20不是是记录recordTEXT4.1.3 online表该表记录用户的在线状态,
40、对效劳器端转发数据包有着至关重要的作用。该表包含name姓名,ID编号两个字段。其结构如表4.4所示。表4.4 online表字段中文名称字段英文名称字段类型字段长度是否为空主键用户名IDVarchar20不是是姓名NAMEINTEGER不是4.1.4 数据库层数据库层的数据如图4.5所示.import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import j
41、ava.sql.Statement;public class DBConnection private static final String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"private static final String URL="jdbc:sqlserver:/localhost:1433;database=db_shop"public static Connection getConnection(String username,String userpass
42、)Connection conn=null;try Class.forName(driverName);conn=DriverManager.getConnection(URL, username, userpass); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return conn;public static
43、Connection getConnection()return getConnection("sa","123456");4.1.5 模型层 主要由BEAN下的RecordDTO构成。public class RecordDTO private int recordID;private String recordName;private String recordMessage;public int getRecordID() return recordID;public void setRecordID(int recordID) this.reco
44、rdID = recordID;public String getRecordName() return recordName;public void setRecordName(String recordName) this.recordName = recordName;public String getRecordMessage() return recordMessage;public void setRecordMessage(String recordMessage) this.recordMessage = recordMessage;第5章 系统详细实现 流程示意图 如图5.1
45、所示,通过三层设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。VIEW端的CHAT.jsp表是视图层的文件,把数据传到CONTROL层的DAO包,再传到模型层的ADD,和FINDALL包里面,最后到数据库层的完成数据的提取,最后由DAO.FINDALL传值到WEB页面。DAO.ADD()ADD()FINDALL()INSERSELECTVIEWCONTROLMODELDATABASE图5.1 流程示意图5.2 各个模块的实现 事务 用户登录程序 数据库用户聊天程序 用户注册程序图 5.2 总体流程图5.2.1 登录页面页面提供用户的登录界面及注册链接,提示
46、用户输入用户名和密码。这个页面提供表单的post方法,将用户输入的信息name和psw发送给ver.jsp页面。登录页面的表单由两个表格<table>组成。第一个表格用于放置用户名和密码输入框,第二个表格用于放置用户提交和重置按钮。如图5.3所示. 图5.3 登录页面代码:<meta -equiv="pragma" content="no-cache"><meta -equiv="cache-control" content="no-cache"><meta -equiv=
47、"expires" content="0"> <meta -equiv="keywords" content="keyword1,keyword2,keyword3"><meta -equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.cs
48、s">-> </head> <script type="text/javascript" src="js/demo.js"></script> <body background="image/1421355329.jpg" left=250 top=200 width=500 height=400><center><iframe name="aa" width="450" height="250&q
49、uot; marginwidth="30" marginheight="20" align="center" allowtransparency="true" style="background-color:white"></iframe></center><form action="Chat" id="form1" method="post" target="aa"><
50、;center><table><!-DWLayoutTable-><tr><td align="left" colspan="+2">昵称:<input type="text" id="s1" name="name" onblur="checknameID()"/></td><input type="submit" value="进入聊天" >&l
51、t;/tr><tr><td width="365" height="57" valign="top" style="size:5"><textarea name="content" id="s2" cols="50" wrap="physical" style="height:100">请输入内容</textarea></td><td width
52、="40" valign="top"><input name="提交" type="submit" value="确认" style="height:100" style="width:50"/></tr>5.2.2 聊天页面组成,TESTCHAT.JSP主要用于点击进入聊天之后的页面显示。如图5.4显示。代码:!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitiona
53、l/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'testchat.jsp' starting page</title> <meta -equiv="pragma" content="no-cache"><meta -equiv="cache-control" content="no-cache"&g
54、t;<meta -equiv="expires" content="0"> <meta -equiv="keywords" content="keyword1,keyword2,keyword3"><meta -equiv="description" content="This is my page"> <!- <meta content="1" -equiv="refresh"/>
55、-><!-<link rel="stylesheet" type="text/css" href="styles.css"> </head> <body > <c:forEach var="list" items="$list"> <font color="blue" face="幼圆">$list.recordName</font>说: <br/> <f
56、ont face="黑体">$list.recordMessage</font> <br/> </c:forEach>5.2.3 查看在线用户软件具有查看在线人数功能,以下代码用于查看用户的状态与信息。如图5.5所示.代码:public class Chat extends Servlet public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException doPost(request,res
57、ponse);public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");String name=request.getParameter("name");name=new String(name.getBytes("iso-8859-1"),"UTF-8");String content=
58、request.getParameter("content");content=new String(content.getBytes("iso-8859-1"),"UTF-8");RecordDAO dao=new RecordDAO();ArrayList<RecordDTO> list=new ArrayList<RecordDTO>();if(name=null)list=dao.showMessage(); request.setAttribute("name", name);request.setAttribute("content", content);elsedao.insertRecord(name, content);list=dao.showMessage();request.setAttribute("name", name);r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应合同范本写
- 240钻机租赁合同范本
- epc工程合同使用合同范本
- 人工加材料合同范本
- 全新货车购车合同范例
- 保险公司担保贷款合同范本
- it 顾问合同范本
- 分公司发票合同范本
- 代招合同范本
- 出租摩托协议合同范本
- 2025年江苏商贸职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 科技与教育的融合小学科学探究式学习的实践案例
- 2025年浙江绍兴杭绍临空示范区开发集团有限公司招聘笔试参考题库附带答案详解
- 煤矿隐蔽致灾因素普查
- 2025年春季1530安全教育记录主题
- DBJ33T 1271-2022 建筑施工高处作业吊篮安全技术规程
- 2025年3月日历表(含农历-周数-方便记事备忘)
- 消化内镜护理讲课
- 《中国人口老龄化》课件
- 静脉采血最佳护理实践相关知识考核试题
- 检验检测中心检验员聘用合同
评论
0/150
提交评论