j2ee聊天程序(附代码)_第1页
j2ee聊天程序(附代码)_第2页
j2ee聊天程序(附代码)_第3页
j2ee聊天程序(附代码)_第4页
j2ee聊天程序(附代码)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖南农业大学课程论文学 院:东方科技学院 班 级:08级计算机3班姓 名: 严 亮 学 号:课程论文题目:聊天室程序设计课程名称:J2EE编程技术评阅成绩:成绩评定教师签名:日期: 年 月 日网络聊天程序设计学 生:严 亮(东方科技学院08级计算机3班,学号)摘要:网络已经遍布我们的生活中,网络聊天室也是人们交流娱乐的好场所。成为人们快速获取、发布和传递信息的重要渠道,它在人们的政治经济和生活等各个领域发挥着重要,满足了基本聊天的需求,有注册新用户,公共聊天和私人聊天。管理后台等功能。网站总体分为四大模块,分别是:欢迎界面、管理员模块、用户管理模块、聊天模块。JAVA能够快速有效的解决问题,此

2、系统能够实现信息交互以及信息的保存等功能。 关键字: 聊天室,网络,J2EE 1、J2EE简介J2EE Java2平台企业版(Java 2 Platform, Enterprise Edition) J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。1.1 J2EE的概念目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edi

3、tion,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Inter

4、net应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。 1.2 J2EE的优势J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制: 1.2.1. 保留现存的IT资产:由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是

5、公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。 1.2.2. 高效的开发:J2EE允许公司把一些通用的、很繁琐的服务端

6、任务交给中间供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: o 状态管理服务 - 让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。 o 持续性服务 - 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。 o 分布式共享数据对象CACHE服务 - 让开发人员编制高性能的系统,极大提高整体部署的伸缩性。 1.2.3. 支持异构环境:J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统

7、、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 1.2.4. 可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系

8、统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 1.2.5.稳定的可用性:一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。1.

9、3 J2EE 的结构这种基于组件,具有平台无关性的J2EE 结构使得J2EE 程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE 服务器以容器的形式为所有的组件类型提供后台服务. 因为你不用自己开发这种服务, 所以你可以集中精力解决手头的业务问题。 容器和服务容器设置定制了J2EE服务器所提供得内在支持,包括安全,事务管理,JNDI(Java Naming and Directory Interface)寻址,远程连接等服务,以下列出最重要的几种服务: J2EE安全(Security)模型可以让你配置 web 组件或enterprise bean ,这样只有被授权的用户才能访问

10、系统资源. 每一客户属于一个特别的角色,而每个角色只允许激活特定的方法。你应在enterprise bean的布置描述中声明角色和可被激活的方法。由于这种声明性的方法,你不必编写加强安全性的规则。 J2EE 事务管理(Transaction Management)模型让你指定组成一个事务中所有方法间的关系,这样一个事务中的所有方法被当成一个单一的单元. 当客户端激活一个enterprise bean中的方法,容器介入一管理事务。因有容器管理事务,在enterprise bean中不必对事务的边界进行编码。要求控制分布式事务的代码会非常复杂。你只需在布置描述文件中声明enterprise bea

11、n的事务属性,而不用编写并调试复杂的代码。容器将读此文件并为你处理此enterprise bean的事务。 JNDI 寻址(JNDI Lookup)服务向企业内的多重名字和目录服务提供了一个统一的接口,这样应用程序组件可以访问名字和目录服务. J2EE远程连接(Remote Client Connectivity)模型管理客户端和enterprise bean间的低层交互. 当一个enterprise bean创建后, 一个客户端可以调用它的方法就象它和客户端位于同一虚拟机上一样. 生存周期管理(Life Cycle Management)模型管理enterprise bean的创建和移除,一

12、个enterprise bean在其生存周期中将会历经几种状态。容器创建enterprise bean,并在可用实例池与活动状态中移动他,而最终将其从容器中移除。即使可以调用enterprise bean的create及remove方法,容器也将会在后台执行这些任务。 数据库连接池(Database Connection Pooling)模型是一个有价值的资源。获取数据库连接是一项耗时的工作,而且连接数非常有限。容器通过管理连接池来缓和这些问题。enterprise bean可从池中迅速获取连接。在bean释放连接之可为其他bean使用。 容器类型 J2EE应用组件可以安装部署到以下几种容器中

13、去: EJB 容器管理所有J2EE 应用程序中企业级bean 的执行. enterprise bean 和它们的容器运行在J2EE 服务器上.Web 容器管理所有J2EE 应用程序中JSP页面和Servlet组件的执行. Web 组件和它们的容器运行在J2EE 服务器上. 应用程序客户端容器管理所有J2EE应用程序中应用程序客户端组件的执行. 应用程序客户端和它们的容器运行在J2EE 服务器上. Applet 容器是运行在客户端机器上的web浏览器和 Java 插件的结合.。2.网络聊天室系统2.1网络聊天室系统设计的目的和意义 从世界上第一台计算机诞生至今只有半个多世纪,然而正因为它的方便、

14、快捷、实用,已被应用到各个领域。随着网络的出现,信息资源的实时共享成为现实,更重要的是它提供了一种极为直接的交互方式,当然这种交互不单是指数据、信息之间的传递,也包括人与人之间的互相交流,各种聊天软件和在线聊天室正是承载这类交互的媒介。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。随着互联网的发展,人们通过网络

15、可以更方便快捷地进行信息交流和学习,聊天系统可以为大家提供一个更好的交流平台,在这个平台上,人们可以通过文字与符号进行实时的交谈、聊天,它是一个向整个因特网开放的地方,是提供给网民一个交友与娱乐的场所,在聊天室里网民可选择自已的聊天对象,与其进行对话交流,是网民之间相互沟通、交流情感的最佳方式之一。同时它已成为各网站提供的一个服务标准,是吸引网民,提高人气的一个重要方式。 本网络聊天室是用最新的JSP(JavaServer Pages)技术实现,主要有公共聊天、私人聊天、趣味竞猜、管理后台等功能。通过聊天室系统的设计,熟悉网站建设基本操作。包含网页制作、服务器的建立与管理、数据库建立与使用等,

16、掌握网站的基本架构、服务器与数据库的连接等,强化自己的基本设计能力。 2.2网络聊天室系统功能 实现聊天室基本功能, 与聊天室成员一起聊天,可以与聊天室成员私聊, 可以改变聊天内容风格,用户注册(含头像)、登录,服务器监控聊天内容,服务器过滤非法内容,服务器发送通知,服务器踢人,保存服务器日志,保存用户聊天信息。2.3 网络聊天室系统设计技术 2.3.1 服务器端1.处理用户注册2.处理用户登录3.处理用户发送信息4.处理用户得到信息5.处理用户退出2.2.2 客户端1.用户注册界面及结果2.用户登录界面及结果3.用户发送信息界面及结果4.用户得到信息界面及结果5.用户退出界面及结果2.4 性

17、能需求运行环境:Windows 9x、2000、xp、2003,Linux必要环境:JDK 1.5 以上硬件环境:CPU 400MHz以上,内存64MB以上2.5 客户端结构ChatClient.java 为客户端程序启动类,负责客户端的启动和退出。Login.java 为客户端程序登录界面,负责用户帐号信息的验证与反馈。Register.java 为客户端程序注册界面,负责用户帐号信息的注册验证与反馈。ChatRoom.java 为客户端程序聊天室主界面,负责接收、发送聊天内容与服务器端的Connection.java 亲密合作。Windowclose 为ChatRoom.java的内部类,

18、负责监听聊天室界面的操作,当用户退出时返回给服务器信息。Clock.java 为客户端程序的一个小程序,实现的一个石英钟功能。2.6系统实现原理当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端;当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新

19、消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。2.7 问题陈述1.接受用户注册信息并保存在一个基于文件的对象型数据库。2.能够允许注册过的用户登陆聊天界面并可以聊天。3.能够接受私聊信息并发送给特定的用户。4.服务器运行在自定义的端口上1001。5.服务器监控用户列表和用户聊天信息(私聊除外)。6.服务器踢人,发送通知。7.服务器保存日志。3.详

20、细设计3.1 网络聊天室系统总体设计  图3.1网站总体模块图 网站总体分为四大模块,分别是:欢迎界面、管理员模块、用户管理模块、聊天模块。 其中欢迎模块就是开始的欢迎页面,是全网站的首页,也是带领用户进入本网站的向导,其中包含进入登录界面和进入注册界面两个链接。  图3.2管理员模块 管理员模块是管理员进行对网站的管理使用的模块,有管理员登录页面、管理员管理页面和管理员操作反馈页面等组成,主要实现对已注册用户和在线用户的管理,通过对用户的了解确定用户这册身份的去与留。这主要通过管理员拥有的对数据库操作的权限,从而决定是否从数据库内将用户信息删除以达到踢出用户的功

21、能。利用网站内提供的javaBean实现和数据库连接,在管理员操作页面内设有动态delete删除SQL语句,通过<jsp:userBean/>语句连接数据库,通过获取文本框内管理员输入的用户名,设立相应数据集,对应数据库,首先执行select选取操作以确定数据库中是否有管理员输入的用户名,若错误的用户名则提示管理员错误信息,若正确的用户名则对数据库执行delete操作,删除数据库内用户的信息,从而达到删除用户的的功能。图3.3 用户模块 用户模块主要包括用户登录和用户注册两个单元,分别是用来给用户登录和用户注册使用的页面。已注册用户的登录实现主要通过将用户的提交用户名与数据库中的对

22、比,查找是否有该用户名,使用动态select选取SQL语句。如果数据库内没有该用户名,则该用户显然尚未注册,反馈相应信息;如果有该用户名则继续对应用户提交的密码与数据库内该用户名项的密码相对比,一样则允许用户登录,并将页面转到聊天界面,否则提示相应错误信息。并同时将登录成功的用户的用户名写进application从而在聊天界面的用户列表里能被显示出来。4实现效果1.导入数据库2.导入工程3.运行测试4.运行服务器监听5.运行客户端6.运行第二个用户5 网络聊天室系统数据库设计 .4.1数据库 6 网络聊天室系统使用说明 6.1网络聊天室系统操作说明注册页面提供了多个输入框,分别供用户输入其用户

23、名、密码及密码确认、e-mail和qq等,在确认用户名没有冲突后,将用户所填信息输入数据库,以供用户再次登录使用。对输入的用户名及密码项有必填要求,并对用户名长度有2-10字节长度要求,即如果是使用英文用户名,那么您的用户名就不能超过10个字母,而如果您使用的是中文用户名的话,您的用户名就不能超过5个汉字了,密码及密码确认项则必须相同,e-mail的格式也必须正确,否则会在左上方有相应错误提示。图6.1注册界面截图 用户的申请帐号是有长度限制的,如后面标记“长度是能是2-10之间”,即只能是2-10个字节,如果使用英文名注册的话,就只能在2-10个字母之间,中文名的话就在一个到五个汉字之间,还

24、有e-mail的格式需要填写正确!帐号、密码、密码确认、e-mail这三项是必填的,因此少写一项或某项不合要求的话,会被拒绝注册的,当然,会有相应的信息提示,可按提示操作。 6.2聊天界面的一些说明 聊天对象的选择中,是不能对自己说话的,当然同样,你也不能对大家说“悄悄话”,只能是公共聊天。 7 结束语 本文讨论了如何利用j2ee技术开发聊天室系统,基本满足了结构化、界面友好、速度快、安全性以及稳定性等特点。系统着重研究并实现了网络应用的部分。根据实现的情况看,具有较友好的聊天界面生成效果,以及流畅的网络通信效果。生成的聊天室可以达到基本的聊天要求,具有较高的研究价值。系统具有目前聊天室的基本

25、功能:包括支持多种头像,字色,语气选择,支持emote,支持私聊,支持在线聊友查找,支持分屏显示,支持用户定制自己的私人头像,支持脏话过滤,支持嘉宾聊天。屏蔽掉自己讨厌的人物,可以给所有聊友发公共信息。具有速度快,高稳定性,占用系统资源少,用户界面友好等特点。J2EE 带动了Java在企业级的发展,但随着一些轻量级组件的出现,J2EE的臃肿和开发难度高的缺点越来越引起了许多人的注意,EJB2.0也被许多人称为累赘。随着Spring,Hibernate的不断完善和发展,EJB3.0出现了,成为了未来Java 企业级开发的新的方向。通过毕业设计,发现自己在理论研究和实际工作能力等方面都得到了提高,

26、受益匪浅。同时在老师的指导和同学的帮助下,及时总结研究成果,这些无疑会对我今后的工作和学习带来很大的帮助。 8 参考文献 1. 吴目诚. DREAMWEAVER MX 2004中文版数据库网页制作应用基础教程M.北京:中国铁道出版社, 2006,23-170; 2. 萨师煊.数据库系统概论M.北京: 高等教育出版, 2000,15-240; 3. 孙鑫. Java Web开发详解-XML+XSLT+Servlet+JSP深入剖析与实例应用M.北京:电子工业出版社,2006年4月,53-177; 4 Bruce Eckel(美).java编程思想M.北京:机械工业出版社, 2005年5月,344

27、-348;311; 5 计磊,李里.精通j2ee 整合应用案例M.北京:人民邮电出版社,2006年8月,343-383; 附源代码:AppServer.javaimport java.io.*;import .*;import java.util.*;/* * <p> * Title: HappyChat聊天系统服务器程序 * </p> * <p> * Description: 聊天服务器 * </p> * <p> * Copyright: Copyright (c) 2006 * </p> * <p> * F

28、ilename: AppServer.java * </p> * 创建服务器<br /> * * version 1.0 * */public class AppServer extends Thread private ServerSocket serverSocket;private ServerFrame sFrame;private static Vector userOnline = new Vector(1, 1);private static Vector v = new Vector(1, 1);/* * 创建服务器 启动服务监听1001端口 * */p

29、ublic AppServer() sFrame = new ServerFrame();try serverSocket = new ServerSocket(1001);/ 获取服务器的主机名和IP地址InetAddress address = InetAddress.getLocalHost();sFrame.txtServerName.setText(address.getHostName();sFrame.txtIP.setText(address.getHostAddress();sFrame.txtPort.setText("1001"); catch (IOException e) fail(e, "不能启动服务!");sFrame.txtStatus.setText("已启动.");this.start(); / 启动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论