电子信息工程毕业设计论文-网络聊天室的设计和实现_第1页
电子信息工程毕业设计论文-网络聊天室的设计和实现_第2页
电子信息工程毕业设计论文-网络聊天室的设计和实现_第3页
电子信息工程毕业设计论文-网络聊天室的设计和实现_第4页
电子信息工程毕业设计论文-网络聊天室的设计和实现_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

摘要PAGEII64-本科毕业设计(论文)题目名称网络聊天室的设计和实现学生姓名专业班级电信学号选题的目的和意义:伴随着网络的出现,网页逐渐融入人们的生活。快速及时的信息浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上又出现了第三媒体——Internet。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。制作网页是企业和个人的宣传自己的重要手段,同时也是学习者获取学习信息的重要手段。尤其是在交流领域,人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。所以网页也逐渐成为一种新兴的交流资源。也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。随着Internet的进一步发展,网络上的聊天日益进入了人们的生活,在网络中,人们不需要知道对方真实的姓名,年龄,只要是在同一个软件或者同一个聊天室里,大家都可以放下身心的包袱,无拘无束的交友、抒发自己的压力。不会因为一些合理和不合理的原因,限制住自己的言语。可以这么说,网络带动了信息的交流而聊天带来了我们更多的朋友和伙伴。开发一个网络聊天室的能够提供给人们的交流平台,信息的流通等等,因此本论文将通过阐述制作网络聊天室的开发、制作、以及调试过程,来分析聊天室系统的各种功能和使用方法。国内外研究综述:在internet网络的浪潮下,对于每一个独立上网的个体来说,每天上网的主要目的大多是为了娱乐、查找资料。随着计算机技术的飞速发展,网络聊天的方式已经慢慢被人们接受并且取代了在现实生活中交友的方式,聊天室系统就由此而产生。在网络的聊天中,任何人都是平等的,任何人都可以在网络中畅所欲言,不受到任何限制和阻挠。网络聊天室就是提供这么一个聊天的平台,给人们享受生活和结交新旧朋友的网络平台。

总的来说,网络聊天系统的设计有五大方面的功能:输入功能、修改功能、删除功能、管理处理功能、快速查询功能和统计功能。这些功能的设计是基于以下几个原因:

(1)输入功能

能够输入用户自己身份的功能,当用户将自己的资料输入电脑中,电脑的数据库SQLServer2000就将用户的资料记录下来,为用户的下一次的登陆和管理不正当用户提供帮助。

(2)修改功能和删除功能

随着用户的生活不断变化,用户的资料也相应跟着变动,所以必须把用户的资料及时更新。因而用户资料的修改功能、删除功能能够及时的改变资料信息让资料信息与实际情况相符,为咨询用户的好友、用户的个人喜好提供最新的信息。

(3)浏览的功能

快速浏览功能是本聊天室系统的一个比较强大的功能,它能够实现在获得每一位独立的用户发送信息后,立即发送显示到文本框中,让用户能够实时的获得聊天系统最新的聊天信息毕业设计(论文)所用的主要技术与方法:1.选择MYSQL作为后台的数据库,选择JAVA,JSP,HTML作为应用程序开发工具。2.对于框架技术,采用JSP,XML,HTML。2.1什么是JSPJSP是指JavaServerPages,它是由Sun微系统公司于1999年6月推出的一项技术,是基于JavaServlet以及整个java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。JSP技术是J2EE的一个关键技术,它在更高一级的层次上抽象Servlet。它可以让常规静态HTML与动态产生的内容相结合,看起来像一个HTML网页,却作为Servlet来运行。现在有许多商业应用服务器支持JSP技术,比如BEAWebLogic、IBMWebSphere、JRun等等。使用JSP比用Servlet更简单。如果你有一个支持JSP的Web服务器,并且有一个JSP文件,你可以把它放倒任何静态HTML文件可以放置的位置,不用编译,不用打包,也不用进行ClassPath的设置,就可以像访问普通网页那样访问它,服务器会自动帮你做好其他的工作。2.2JSP与ASP的简单比较JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发试题库系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了试题库系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与数据库的连接及数据的备份与还原。主要参考文献与资料获得情况:1]余昀,《JSP2.0技术从入门到精通》北京:中国铁道出版社[2]张光彬,孟红蕊,《Java课程设计案例精编》北京:清华大学出版社

[3]司光亚,牛红译,《JSPWeb编程指南》北京:电子工业出版社:毕业设计(论文)进度安排(按周说明)指导教师审批意见:指导教师:(签名)年月日摘要随着Internet的发展,网络上的聊天日益进入了人们的生活,在网络中,人们不需要知道对方真实的姓名,年龄,只要是在同一个软件或者同一个聊天室里,大家都可以放下身心的包袱,无拘无束的交友、抒发自己的压力。不会因为一些合理和不合理的原因,限制住自己的言语可以这么说,网络带动了信息的交流而聊天带来了我们更多的朋友和伙伴。开发一个网络聊天室的能够提供给人们的交流平台,信息的流通等等,因此将通过阐述制作网络聊天室的开发、制作、以及调试过程,来分析聊天室系统的各种功能和使用方法。本文阐述了基于Java聊天室系统的工作原理和实现方法,分析了Java聊天室系统工作的流程,并对系统功能目标和使用的程序进行了系统的分析和设计,在这些基础上实现了基于Java的网上聊天室.利用Java制作的网上聊天室,实现了用户可以通过注册用户名密码性别和昵称,来登陆聊天室.同时本文还对系统的开发原理、系统的功能特点和设计方案进行了介绍。关键词:Java的网络聊天室AbstractAbstractWiththedevelopmentofinternet,chattingonlinegoesintopeople’slifedayandnight.Peopledonotneedtoknowthetrueinformationofhisinternetfriend,likethenameandage.Assoonasenterthesamesoftwareorchattingroom,peoplecanrelievehimself,feelfreetomakefriends,giveouthispressure.Everybodywillnotrestricthimselfduetothereasonableorunreasonablereason.Inotherwords,theinternetspeedupthecommunicationwhilechattingonlinebringsusmorefriends.Todevelopainternetchattingroomistosupplypeopleacommunicationplatformandtheinformationcirculationetc.Therefore,theanalysisoffunctionandusageofchattingroomistoaccomplishedbystatingthedevelopmentandproductionandmodulationofit.ThethesistellstheworkingsystembasedontheJavachattingsystem,analyzeanddesignthesystemfunctiontargetandtheprocessionofmanipulation.Theuserisabletoenterthechattingroomsimplybyregisterhisnicknameandpassword.Meanwhilethispaperalsomakesintroductionofdevelopingprinciple,functiontraitanddesign.Thekeywords:theJavachattingsystemAbstract目录64-目录1前言 -1-1.1选题背景及意义 -1-1.2网络聊天室系统的发展和研究现状 -1-1.3各章节内容简介 -2-2相关技术介绍 -3-2.1JSP技术简介 -3-2.1.1JSP与其他语言的比较 -5-2.1.2JSP技术的未来 -8-2.2Tomcat服务器 -9-2.3数据库简介 -10-2.3.1JDBC-ODBC -10-2.4本章小结 -14-3网络聊天室系统结构分析 -15-3.1网络聊天室的总体结构 -15-3.2网络聊天室系统开发设计环境 -16-3.3网络聊天室系统的运行环境 -16-3.4安装和配置SERVLET和JSP执行环境 -17-3.4.1TOMCAT+IIS配置虚拟服务器 -17-3.4.2IIS+Resin搭建虚拟服务器 -18-4网络聊天室的设计与实现 -21-4.1网络聊天室的功能: -21-4.2整个聊天室的页面组成 -22-5总结与展望 -62-致谢 -63-参考文献 -64-附录 -65-网络聊天室的开发本科毕业论文1前言1.1选题背景及意义进入21世纪后,网络得到飞速的发展,人们不再只从电视或广播中获得信息越来越多的到网上寻求所要找的相关内容。在网络上交流也渐渐流行起来,交流方式也逐步开始利用网络技术,上网聊天已经走进了许多人的生活。见于现在网上的许多聊天室容量上过小版面也不新颖,而开发大都是基于ASP、PHP等技术,而利用JSP技术设计的网络聊天室不是很多,同时也为了给喜欢上网聊天的朋友多一种的选择,于是选了利用JSP技术实现网络聊天室作为本次毕业设计的课题。1.2网络聊天室系统的发展和研究现状聊天室系统是一个通过国际互联信息网络进行多人通讯的一个系统.该系统在一定网络通讯及高级语言程序设计和JSP应用程序设计的基础上,利用计算机通讯原理,形成一个聊天室平台,使得用户在进入这个聊天室系统平台的同时,可以通过网络在线与距离遥远的其他一位或多位用户进行信息交流。

聊天室主要分为WebChat、BBSChat两种.BBSChat是基于Telnet的Tcp协议,是BBS的附设功能,需要客户端Telnet程序.WebChat则采用浏览器方式,实际上是一个多人共同使用的CGI程序。其基本原理是把每个用户的发言通过浏览器传给系统,再由系统收集处理后分发给特定用户。

WebChat一般采用ServerPush或ClientPull技术.两种技术的区别在于使用不同的方式将数据分发给用户,ServerPush是由服务器将数据以多重MIME编码,发送给(push)使用者端,目前较少网站使用这种方式.ClientPull则是用户从服务器接收(pull)所要的数。在这个信息极其发达的时代,我们目前可以用来进行信息交流的方法也有非常多,比如电报、电话、电子邮件、OICQ等等通讯手段,但是这些或者不方便或者有局限性或者有费用的问题,比如电话就是属于费用比较高的一种方式,而且一般情况下不能进行多人会谈,只能2方通话,那么一个需要几个人一起讨论的会议就不能举行,一般情况下都需要花费大量的人力物力把这几个人聚集到同一地点才能进行讨论。非但费时费力费钱而且效果也不一定很好。电子邮件则不是一种及时联系的手段,需要一定时间才能到达,只能作为一种辅助交流的手段。但是,聊天室这个就能很好的解决这个问题,我们不需要聚集在同一地点,各自在不同的地点就可以在聊天室中发言,大家互相讨论.而且好的聊天室还有各种表情符号等可以加强我们的表达.而且费用低廉,信息交流速度快,只有这样,才能在这个涌动的社会中加强联系,创造出更多的财富。1.3各章节内容简介这次毕业设计,分为五大部分:第一章前言介绍了此次选择制作网络聊天室系统的意义,叙述了网络聊天室的作用,为下一章节选择技术提出背景;第二章紧跟第一章的内容,介绍了JSP技术,分析了JSP技术的特点以及相对于其它技术来说其本身得优点,以论述选择它作为开发技术的原因;第三章有了开发技术,接下来就要分析网络聊天室的构成以及数据库的需求分析,本章节就对网络聊天室系统进行了分析;第四章在前几章的铺垫下,完成了程序主题制作并且分几段进行介绍,使得结构更加清晰,附有的截图也清楚得反应出系统运行良好;第五章为全文做了总结并对系统以后的发展做了展望。2相关技术介绍开发网络聊天室必然要对应用到的技术有一定的了解,在本章节将对JSP等应用到的技术进行介绍,论述JSP技术的特点,用其它语言作比较显出JSP的优点.在文章的最后将对选用的服务器进行介绍。2.1JSP技术简介现在虽然有多种技术可用于生成为动态内容提供服务的web应用程序,但真正受到开发界青睐的是JavaServerPagesTM(JSPTM).这并非没有充分的理由。JSP不仅拥有跨平台和跨Web服务器支持,并且将服务器端Java技术的功能与静态HTML页的“所见即所得”功能有效地结合了起来。作为Java平台的一部分,JSP的脚本语言采用Java,拥有Java编程语言“一次编写,各处运行”的特点,完全继承了Java的所有优点。而且通过开发定制化标示库,JSP技术是可以扩展的,使Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的组件来工作。JavaServlet简介Javaservlet是基于服务器端的编程,可以说Servlet是基于服务器上的Applet编程,JSP技术主要就是用在网络编程上所以也是基于Servlet的。Javaservlets提供了一项协议和平台无关的方法来创建基于web的应用,Servlets在web服务器上运行,而且不需要图形用户接口(GUI)这和applet不同,在web服务器上运行的servlet引擎通过请求和响应来交互信息客户端程序,可以用任意语言编写访问web服务器,同时生成请求,请求然后由web服务器上的servlet引擎处理处理完毕后,servlet引擎处理把响应返回给servlet,然后由servlets把响应结果传给客户端.JavaServlets是运行在请求/面向请求服务器上的模块,比如一个Java-enabledweb服务器,和类似这样的延伸场合。例如,一个Javaservlet可以从一个HTML订单表中获取数据,然后用一些商业上的算法来更新公司相应的订单数据库,也就是说Javaservlet能够象CGI脚本一样扩展WEB服务器功能。但是servlet占用很少密集资源,有很多用CGI脚本编制的一些站点由于访问量剧增,性能迅速下降这是CGI脚本一个缺点有关.同时由于Javaservlet是用java编写的,因此是跨平台的,JavaServlet可以相当有效地替代CGI脚本,它可以方便地产生容易编写,而且运行快的动态文本可以很方便的调试寻找出程序问题。Servlet程序是用JavaServletAPI开发的,astandardJavaextension.但不是Java核心框架的一部分。JavaServlet的优点(1)程序执行的效率比较高因为JavaServlet不是直接在cpu上执行,而是在Java虚拟机上运行,而且JavaServlet和Java程序一样是半编译半解释的,在执行前要先生成字节码这使得JavaServlet程序的运行效率得以提高。(2)与平台无关Javaservlet程序写一次后就能到处运行,不会受运行平台的影响这都是因为Java语言本身就具有与平台无关的优点.JavaServlet采用的是Java语言所以也具有这种优点。(3)标准APIJavaServlet程序有一个标准API,保证了程序开发的一致性.ServletAPI与协议无关,因此它能被嵌入各种类型的服务器中,ServletAPI还具有可扩展性可以通过继承机制安全方便的增加它的功能。JavaServlet与CGI的功能差不多,但JavaServlet用起来比CGI简单,不必像CGI一样要求程序员有处理传递参数的知识,还有JavaServlet的程序代码一般来说比CGI要简单一些。2.1.1除JSP外目前最常用的三种动态网页语言ASP(ActiveServerPages)和PHP(HypertextPreprocessor)。ASP全名ActiveServerPages是一个WEB服务器端的开发环境利用它可以产生和运行动态的交互的高性能的WEB服务应用程序ASP采用脚本语言VBScriptJavascript作为自己的开发语。PHP是一种跨平台的服务器端的嵌入式脚本语言它大量地借用C,Java和Perl语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面它支持目前绝大多数数据库。JSPASP和PHP三者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生.在ASP、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP、PHP、JSP页面需要附加的语言引擎分析和执行程序代码.程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。下面分别列出三种语言的技术特点以做比较。ASP的技术特点:(1)使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速完成网站的应用程序。(2)无须compile编译,容易编写,可在服务器端直接执行。(3)使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。(4)与浏览器无关(BrowserIndependence),用户端只要使用可执行HTML码的浏览器,即可浏览ActiveServerPages所设计的网页内容。ActiveServerPages所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。(5)ActiveServerPages能与任何ActiveXscripting语言相容。除了可使用VBScript或JScript语言来设计外,还通过plugin的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等.脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。(6)可使用服务器端的脚本来产生客户端的脚本。(7)ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。PHP的技术特点:1数据库连接.PHP可以编译成具有与许多数据库相连接的函数.PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数去间接存取数据库.通过这样的途径当你更换使用数据库时,可以轻松地更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。但PHP提供的数据库接口支持彼此不统一,比如对Oracle,MySQL,Sybase的接口,彼此都不一样这也是PHP的一个弱点。2面向对象编程.PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。JSP的技术特点:(1)将内容的生成和显示进行分离.使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行.如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML或者XML页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。(2)强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。2.1.2JSP技术被设计为一个开放的,可扩展的建立动态Web页面的标准。开发人员可以使用JSP页面来创建可移植的Web应用,在不同的Web和应用服务器上为不同的场合所运行,而不论采用什么适合本身场合和需要的创建工具。通过与业界领袖的合作,Sun保证JSP规范是开放的和可移植的。可以使用任何客户机和服务器平台,在任何地方编写和部署它们。将来,工具供应商和其他厂商将通过为专门的功能提供客户化的标识库而扩展平台的功能。JSP规范的1.0版本是通向动态Web页面生成的一个开放的工业标准方法的第一步。1.0版本通过一个核心标识集、隐含对象以及开始创建动态Web页面所需的基本功能构成了该方法的基础。已经有几个Web服务器,应用服务器和开发工具供应商正在为他们的产品添加JSP1.0的支持,这样在业界已经拥有了最初的、立即的支持。在1999晚些时候将完成的1.1版本,通过更多的XML支持、客户化标识、以及与J2EE的集成而扩展这个版本。并且供应商们可能会有选择地扩展和扩充在JSP规范中基本的、必需的功能.JSP引擎能够强有力地支持多种脚本语言和对象模型。在业界扩充和使用JSP技术能力的同时,也向Sun承诺将保证JSP技术保持平台和服务器间固有的可移植性。2.2Tomcat服务器Tomcat是一个带有jsp环境的servlet容器。servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell。粗略地可以将servlet容器分为如下几类:(1)独立的servlet容器内置有web服务器的一部分。指当使用基于Java的web服务器的情形,例如:servlet容器是JavaWebServer的一个部分.独立的servlet容器是Tomcat的默认模式。大多数的web服务器并非基于Java,因此,我们可以得出如下两种容器的模式。(2)进程内的servlet容器servlet容器作为web服务器的插件和Java容器的实现.Web服务器插件在内部地址空间打开一个JVM(javavirtualmachine)使Java容器得以在内部运行。如有某个需要调用servlet的请求,插件将取得对此请求的控制并将他传递(使用JNI)给Java容器.进程内容器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足。(3)进程外的servlet容器servlet容器运行于web服务器之外的地址空间且作为web服务器的插件和Java容器的实现的结合。web服务器插件和Java容器JVM使用IPC机制(通常是TCP/IP)进行通讯。当一个调用servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容器,进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其他可比的范围内更好(伸缩性,稳定性等)。Tomcat既可作为独立的容器(主要是用于开发与调试)又可作为对现有服务器的附加(当前支持Apache,IIS和Netscape服务器)。即任何时候配置Tomcat你都必须决定如何应用他,如选择第二或第三种模式,你还需要安装一个web服务器接口。2.3数据库简介数据库选用的是SQLServer2000。因为SQLServer2000扩展了SQLServer7.0版的性能,提高了可靠性和易用性.所提供的C2级安全标准及先进的容错功能保证了信息的完整性和有效性,满足对系统安全性的要求.SQLServer2000对服务器增加了XML支持、联合数据库服务器、用户定义函数、新的数据类型、全文检索增强、排序规则增强.WindowsNT+SQLServer2000提供的RAS使得工作站-服务器得远程通信较容易实现,由RAS提供的网络访问是透明的,远程用户可入网分享资源,访问SQLSERVER2000数据库等;SQLServer2000是图形化的大型数据库管理系统,它支持分布式处理,提供开放的数据库链接,可以平滑的网络和协议,其完善的事务处理和可用性、安全性满足对数据安全性和一致性的要求。2.3.JSP可以轻松的与多种数据库相连,通过JSP网页可以添加、删除、修改和浏览数据库中的数据。JSP连接数据可以通过两种方法,一种是通过JDBCDRIVER,另一种是通过JDBC-ODBC桥。SQL是一种很流行的关系数据库,JDBC是第一个标准化地把关系数据库和Java程序集成到一起。JDBC简介许多开发者和用户都在寻找Java程序中访问数据库的便捷方法。由于Java是一个健壮、安全易于使用的易于理解.所以它成为开发数据库应用的一种良好的语言基础。它提供了C,C++,Smalltalk,BASIC,COBOL,and4GLs的许多优点,许多公司已经开始在Java与数据库管理系统DBMS的连接方面做工作。许多Java应用开发者都希望能够编写独立于特定DBMS的程序,而我们也相信一个独立于DBMS的接口,将使得与各种各样DBMS连接变得最为便捷,开发更加迅速.所以定义一个通用的SQL数据库存取框架,在各种各样的提供数据库连接模块上提供统一的界面是十分有意义的。这使程序员可以面对单一的数据库界面。使与数据库无关的Java工具和产品成为可能.使得数据库连接的开发者可以提供各种各样的连接方案,我们看到,我们定义一个通用低层的支持基本SQL功能的JavaDataBaseConnectivity(JDBC)API的紧迫任务。JDBC是一种用于执行SQL语句的JavaAPIApplicationProgrammingInterface应用程序设计接口.它由一些Java语言编写的类和界面组成,JDBC为数据库应用开发人员,数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC能完成下列三件事:1)同一个数据库建立连接2)向数据库发送SQL语句3)处理数据库返回的结果JDBC的特点JDBC允许查询表达式直接传递到底层的数据驱动,这样一个程序可以获得尽量多的SQL功能,但是可能被DBMS拒绝,事实上一个程序的查询,甚至可以不是SQL的,或者是SQL的一个特殊演化。例如为专门数据库设计的文本或者图形查询。够被称为JDBC兼容,要求一个驱动至少支持ANSISQL-2的标准,这使得那些需要广泛移植性的程序获得一个最小的分母,相信ANSISQL-2是足够强大的,并且是得到足够支持的。为了兼容性的需要,JDBC必须可以建立在现有的数据库接口上,必须能够保证JDBCSQLAPI能够建立在普通的SQLAPI上,尤其是ODBC才能保证JDBC与现有数据库的兼容性。接口概貌接口分为两个层次一个是面向程序开发人员的JDBCAPI,另外一个是底层的JDBCDriverAPI。JDBCAPIJDBCAPI被描述成为抽象的Java接口似的应用程序,远可以对某个数据库打开连接执行SQL语句,并且处理结果最重要的接口是:java.sql.DriverManager处理驱动的调入并且对产生新的数据库连接提供支持;java.sql.Connection代表对特定数据库的连接;java.sql.Statement代表一个特定的容器来对一个特定的数据库执行SQL语句;java.sql.ResultSet控制对一个特定语句的行数据的存取。其中java.sql.Statement又有两个子类型:1.java.sql.PreparedStatement用于执行预编译的SQL语句;2.java.sql.CallableStatement用于执行对一个数据库内嵌过程的调用。JDBCDriverAPIjava.sql.Driver完整的定义了大部分JDBC驱动,只需要完成这些JDBCAPI所定义的抽象类就可以了,特别地所有的driver必须提供对java.sql.Connection,java.sql.State-ment,java.sql.PreparedStatement,java.sql.ResultSet的实现,如果目标DBMS提供有OUT参数的内嵌过程,那么还必须提供java.sql.CallableStatement接口,每个databasedriver必须提供一个类java.sql.Driver以使得系统可以由java.sql.DriverManager来管理.一个完整的driver是在ODBC之上提供对JDBC的实现,从而提供与ODBC接口的JDBC-ODBC桥就象图2-1所显示的,由于JDBC放在ODBC之后,所以实现起来简单而且高效。2.4本章小结本章节主要论述了JSP的特点,以及相对于其它语言来说它的优点,解决了服务器的选择问题,并对为何选择这种服务器以及服务器之间连接的好处作了介绍,最后简要介绍了接口的面貌。应用程序应用程序JDBCJDBCAccess驱动程序SQL驱动程序Access驱动程序SQL驱动程序Oracle驱动程序Access数据库SQL数据库Access数据库SQL数据库Oracle数据库图2-1JDBC-ODBC接口图3网络聊天室系统结构分析本章节将对网络聊天室的结构进行介绍,首先对总体结构进行了介绍其次简要得介绍了网络聊天室系统得开发环境以及运行环境,最后主要论述了如何安装和配置SERVLET和JSP执行环境的问题。3.1网络聊天室的总体结构聊天室采用的是当前流行的Browser/Server(浏览器/服务器)结构,B/S结构是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构.B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。近年来由于Internet/Intranet技术的发展和普及,各种各样的信息都在WWW(WorldWideWeb)上发布,人们之间的信息沟通比以往变得更为高效快捷,Web技术的应用已成为一种必然,但传统的客户机/服务器模式的数据库设计与Web的相关技术互相独立,两者无法进行集成,我们知道,采用客户机/服务器模式的数据库系统无论在设计开发还是在应用方面都具有一定的局限性,比如在应用中,操作人员必须学会本系统的操作方法、规程等,不具有普及性、易懂性,等等,基于这种情况,微软提出WebComputing的概念,将它应用于数据库技术中。浏览器/服务器(Brower/Server)模式的数据库体系是利用Web服务器和JavaServerPages(JSP)作为数据库操作的中间层,将客户机/服务器模式的数据库结构与Web技术密切结合,从而形成具有三层Web结构的浏览器/服务器模式的数据库体系,(如图3-1)浏览器浏览器Web服务器Web服务器SQL数据库httpJDBC图3-1数据库的三层结构体系图工作原理:在前端采用IE、Netscape等的浏览器将用户提交的操作信息向Web服务器发出HTTP请求,Web服务器通过JSP和一些中间组件访问后台数据库,并将操作结果以HTML页面的形式返回给前端浏览器。3.2网络聊天室系统开发设计环境操作系统平台:中文Windows2000server前台语言:HTML语言嵌套JSP语言前端开发工具:Windows记事本访问数据库技术:JDBC-ODBC桥后端数据库:SQLServer20003.3网络聊天室系统的运行环境硬件环境:能运行Windows98及其以上的微机(出于速度的考虑,推荐内存不少于64M)软件环境:配置有IIS+Tomcat虚拟服务器或IIS+Resin虚拟服务器的Windows2000profession/server、windowsxp以及本地(远程)数据库SQLServer.3.4安装和配置SERVLET和JSP执行环境3.4.1TOMCAT+IIS首先要启动Tomcat,可以查看tomcat\bin\startup.bat文件,利用控制面板里面的系统->高级->环境变量对话框新建环境TOMCAT_HOME和JAVA_HOME,使它们各自指向TOMCAT和JDK的根目录即可.另外为保险起见可以在path里面把二者的路径添加进去,然后开启一个DOS窗口执行startup.bat,启动Tomcat后会有一个DOS窗口显示启动情况,此时访问http://localhost:8080可以看到Tomcat的一些示例。主要工作就是如何把Tomcat插入IIS,使二者协同工作分以下几个步骤(1)在Windows注册表中创建一个新键"HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\JakartaIsapiRedirector\1.0"(2)在这个键中建立如下条目和字符串键值表4-1键得条目和字符串名称值extension_uri"/jakarta/isapi_redirect.dll"log_file指定log文件的路径,例如"c:\tomcat\isapi.log"log_level"debug","inform","error","emerg"4个中选一个worker_perties文件的路径,如"c:\tomcat\conf\perties"nameworker_mount_perties文件的路径,如"c:\tomcat\conf\perties"(3)打开IIS管理器在默认WEB站点中建立一个虚拟目录jakarta,让它的路径指向isapi_redirect.dll所在目录,该虚拟目录应被设置为可执行,也可以尝试在IIS管理器上添加一个应用程序映射,把*.jsp文件映射到isapi_redirect.dll上。(4)利用IIS管理器把isapi_redirect.dll设置为默认WEB站点的ISAPI筛选器,名称可以任起。(5)重启IIS,确认刚才添加的ISAPI筛选器前面标了一个绿色向上的箭头然后重启Tomcat,要退出tomcat时运行shutdown.bat将关闭Dos窗口。此时IIS应该已经可以处理*.jsp文件了,由于Tomcat设置中默认的Root是tomcat\webapps\ROOT所以你可以在这个目录中放置一个jsp文件例如index.jsp然后访问:http://localhost/index.jsp看一下效果。3.4.2IIS+ResinIISWebServer的管理操作比较简单,运行resin插件使IIS支持JSP,在WIN2000的环境下安装resin1.1为了与c:\input目录同根路径设为c:\resin1.1,将iis_srun.dll复制到c:\Input\scripts\目录下,同时在该目录下创建配置文件resin.ini,其内容为CauchoConfigFilec:/resin1.1/conf/resin.cof,如果resin1.1的安装目录不是c:\resin1.1只需将CauchoConfigFileresin1.1的路径/conf/resin.cof.修改resin内容为<><http-serverapp-dirc:\input\wwwroot><servlet-mappingrl-pattern=/servlets/*servlet-name=invoker/><servlet-mappingrl-pattern=*.xtpservlet-name=com.caucho.jsp.XtpServlet/><servlet-mappingrl-pattern=*.jspservlet-name=com.caucho.jsp.JspServlet/></http-server></>启动IIS运行resin1.1\bin\srun.exe,并将JSP文件放入c:\Input\wwwroot目录,如a.jsp,在地址框中输入http://localhost:port/a.jsp可看到该页的运行结果。3.5本章小结本章节分析了网络聊天室的组成结构,介绍了系统开发所需的环境以及运行系统必要的硬件配置,为下一步系统的实现打好了基础。4网络聊天室的设计与实现4.1网络聊天室的功能:登录验证进入聊天室聊天室主页面帮助查看聊客离开其主要的流程图如下:登录否登录验证验证yes聊天室主页面聊天室主页面离开页面帮助页面查看聊客离开页面帮助页面查看聊客图4-1聊天室执行流程图4.2整个聊天室的页面组成in.jsp登录聊天室link.jsp连接数据库link.java连接数据库的Javabeanlogin.jsp用户名的验证工作send_1.jsp对用户消息各个变量的初始化send.jsp发送信息show.jsp显示信息list.jsp用户列表leave.jsp离开聊天室main.html聊天室主页面help.html帮助页面聊天室界面及其功能:(1)in.jsp登录界面对聊天室定义各个变量和建立矢量,以及建立哈希表来保存用户的信息,并初始化个变量的值.同时在message矢量中加入一条初始的欢迎信息“欢迎来到pollux聊天室”。图4-2登陆界面截图In.jsp代码如下:<html><title>pollux聊天室</title><head></head><bodybgcolor="lightgreen"><%@pageimport="java.util.Vector"%><%@pagecontentType="text/html;charset=gb2312"%><%@pagelanguage="java"%><%@pageimport="java.util.Hashtable"%><%@pageimport="java.util.Date"%><%Vectorchat1MsgVector=newVector();\\用来保存用户的聊天信息chat1MsgVector.addElement("<center><fontcolor='green'size='3'>欢迎进入pollux聊天室.</font></center><br>");getServletContext().setAttribute("chat1Msg",chat1MsgVector);Vectorchat1User=newVector();\\用来保存用户的列表chat1User.addElement("");getServletContext().setAttribute("chat1User",chat1User);HashtableliveLife=newHashtable();\\用来保存用户的聊天时间HashtableuserIP=newHashtable();\\用来保存用户的IP地址getServletContext().setAttribute("liveLife",liveLife);getServletContext().setAttribute("userIP",userIP);%><center><fontcolor='blue'size='6'>欢迎来到pollux聊天室.请先登录,谢谢合作.</font></center><br><br><br><br><br><formname="form1"method="post"action="login.jsp"><center><p>登录昵名<inputtype="text"name="username"></p></center><center><p>password<inputtype="password"name="password"></p></center><center><p><inputtype="submit"name="Submit"value="提交"></p><SCRIPTLanguage=javascript><!--functionCheckData(){if(form1.username.value==""){window.alert("请输入姓名");form1.elements(0).focus();}elseif(form1.password.value==""){window.alert("请输入密码");form1.elements(1).focus();}elseform1.submit();}--></SCRIPT></center></form></body></html>在上述程序中,一共有4个Application如下表所示表4-1程序片断注释表Vectorchat1MsgVector=newVector();用来保存用户的聊天信息Vectorchat1User=newVector();用来保存用户的列表HashtableuserLife=newHashtable();用来保存用户的聊天时间HashtableuserIP=newHashtable();用来保存用户的IP地址在这个程序中可以看到在矢量的建立过程中有下列几个过程:Vectorchat1MsgVector=newVector();chat1MsgVector.addElement("<center><fontcolor='green'size='3'>欢迎进入pollux聊天室.</font></center><br>");是一个建立矢量的过程用Vector的addElement方法在矢量中加入一条初始信息“欢迎进入pollux聊天室”,getServletContext().setAttribute("chat1MsgVector",chat1MsgVector);添加chat1MsgVector到服务器的Application对象中并命名为chat1MsgVector在下面这段程序中将看到建立两个Hash哈希表来保存双值变量的过程HashtableuserTime=newHashtable();HashtableuserIP=newHashtable();添加userTime和userIP到服务器的Application对象中分别命名为userTime和userIP。getServletContext().setAttribute("userTime",userTime);getServletContext().setAttribute("userIP",userIP);程序为初始化整个聊天室的首页在调试过程中应以此作为聊天室的入口。程序中,利用一段javascript代码来处理用户因忘记输入用户名或密码而做出相应的处理,提醒并等待用户重新输入。<SCRIPTLanguage=javascript><!--functionCheckData(){if(form1.username.value==""){window.alert("请输入姓名");form1.elements(0).focus();}elseif(form1.password.value==""){window.alert("请输入密码");form1.elements(1).focus();}elseform1.submit();}--></SCRIPT>(2)login.jsp用户验证页面用户验证是需要通过对数据库中username和password的验证来达到验证的目的.所以先要建立数据库,数据库系统使用的是SQLSERVER2000,由于JSP使用统一的数据库接口ODBC-JDBC桥,建立数据库连接这使得用JSP开发的工程可以在不同的数据库平台上移植.在SQLServer2000中,建立一个数据库命名为pass,并在表单中建立名为pass的表,用来保存username,password。在数据库建立之后,我们进行数据库的设计工作,这里建立两列内容,username,password.很快的建立一个数据库列表。建立ODBC数据源,打开Win2000的ODBC数据源管理工具,在用户DSN中添加一个名位pass的SQLServer数据源,建立数据源后,程序就可以通过JDBC-ODBC桥来调用SQLServer数据库.过程如下:首先,在控制面板中的管理工具中打开“数据源”,在用户DSN中,单击“添加”按钮,出现创建新数据源对话框。从“名称”列表中选择SQLServer,单击“完成”,出现建立“新的数据源到SQLServer”对话框,在名称框中键入数据源的名称“path”,在服务器栏中选择一个SQLServer服务器,在本机调试时选择“(local)”本地服务器。在“建立新的数据源到SQLServer”对话框中单击“下一步”按钮,出现选择SQLServer确认登陆的ID的对话框.在本机调试时选择“使用网络登陆ID的WindowsNT验证”。在选择单击下一步后,出现数据库选择框后,点击下拉框选择pass.然后选择一系列的默认操作完成pass数据源的建立。在完成数据库的建立后,要对数据库进行连接测试.首先要启动SQL服务器,然后进行连接测试.当显示测试成功,我们就完成了数据源的建立工作。利用一个Javabean来完成对数据库的连接,在JSP程序中,调用这个数据库接口,即JDBC-ODBC桥。Linksql.java代码如下:importjava.sql.*;importjava.lang.*;publicclasslinksql{StringsDBDriver="sun.jdbc.odOdbcDrver";//设置数据库驱动,建立JDBC-ODBC桥连接StringsConnStr="jdbc:odbc:lfwd";Connectionconn=null;ResultSetrs=null;publiclinksql()//打开数据库{try{Class.forName(sDBDriver);}catch(java.lang.ClassNotFoundExceptione){//捕获异常System.err.println("opendb():"+e.getMessage());}}publicResultSetexecuteQuery(Stringsql){//执行SQL语句rs=null;try{conn=DriverManager.getConnection(sConnStr);Statementstmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLExceptionex){//捕获异常System.err.println("aq.executeQuery:"+ex.getMessage());}returnrs;//返回结果}}在连接数据库时,先将linksql.java编译成linksql.class然后进行类的调用。但是在实际运用中,发现login.jsp调用linksql.class类时,会常常找不到linksql.class类,造成无法连接数据库,在确认代码没有问题的前提下,认为是Tomcat服务器在Win2000下运行不稳定的关系.于是尝试将Java代码直接插入每一处的页面中,来解决连接数据库的问题。插入Java代码后的login.jsp验证页面代码:<html><head><title>登录pollux聊天室</title></head><body><%@pageimport="java.util.Vector"%><%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.util.Hashtable"%><%@pageimport="java.util.Date"%><%@pagelanguage="java"import="java.sql.*"%><%StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";StringsConnStr="jdbc:odbc:pass";Connectionconn=null;ResultSetRs=null;try{Class.forName(sDBDriver);}catch(java.lang.ClassNotFoundExceptione){System.err.println("opendb():"+e.getMessage());}%><%Stringname=request.getParameter("username");Stringpsw=request.getParameter("password");StringsearchSQL=("SELECT*FROMpassWHERE(username='"+name+"')and(password='"+psw+"')");try{conn=DriverManager.getConnection(sConnStr);Statementstmt=conn.createStatement();Rs=stmt.executeQuery(searchSQL);}catch(SQLExceptionex){System.err.println("aq.executeQuery:"+ex.getMessage());}Stringpass="";while(Rs.next()){pass=Rs.getString("password");System.out.println(pass);}{//System.out.println("oookkkkkkkk");%><%byte[]username_p;Stringusername_t=request.getParameter("username");username_p=username_t.getBytes("ISO8859-1");Stringusername=newString(username_p);booleanboolcanlogin=true;%><%Vectortemp=newVector();Stringtempuser;for(inti=0;i<temp.size();i++){tempuser=temp.elementAt(i).toString();if(username.equals(tempuser)){boolcanlogin=false;}}if(username.equals("")){boolcanlogin=false;}if(username.equals("每1个人")){boolcanlogin=false;}if(username.equals("all")){boolcanlogin=false;}if(username.length()>8){boolcanlogin=false;}if(boolcanlogin==true){temp.addElement(username);getServletContext().setAttribute("chat1User",temp);session.putValue("username",username);Vectortempmsg=(Vector)getServletContext().getAttribute("chat1MsgVector");Tempmsg.addElement("<fontsize='3'color='red'>"+username+"来了["+request.getRemoteAddr()+"],大家欢迎!</font><br>");//getServletContext().setAttribute("chat1MsgVector",tempmsg);%><br><br><br><br><br><divalign="center"><p>pollux聊天室</p><p>欢迎聊天</p><p><ahref="main.html">请进</a></p></div><%}else%><divalign="center"><p>用户名相同</p><p><ahref="init.jsp">重新申请ID</a></p></div><%%><%if(boolcanlogin==true){System.Out.println("boolcanlogin==true");HashtableliveLife=(Hashtable)getServletContext().getAttribute("liveLife");HashtableuserIP=(Hashtable)getServletContext().getAttribute("userIP");DateuserTime=newDate();System.Out.println("request.getRemoteAddr()"+request.getRemoteAddr());System.out.println("(String)session.getValue(username)"+(String)session.getValue("username"));//liveLife.put((String)session.getValue("username"),request.getRemoteAddr());//liveLife.put("aa",request.getRemoteAddr());//getServletContext().setAttribute("liveLife",liveLife);//getServletContext().setAttribute("userIP",userIP);}else{%><divalign="center"><p>用户名与password不对</p><p><ahref="init.jsp">重新输入</a></p></div><%}%><%}%></body></html>程序通过布尔变量booleanboolcanlogin=true;来控制用户是否通过了验证。如果通过验证则加入矢量表中并在tempmsg中预置一个消息。temp.addElement(username);getServletContext().setAttribute("chat1User",temp);session.putValue("username",username);Vectortempmsg=(Vector)getServletContext().getAttribute("chat1MsgVector");tempmsg.addElement("<fontsize='3'color='red'>"+username+"来了["+request.getRemoteAddr()+"],大家欢迎!</font><br>");并在哈希表中记录用户的信息.HashtableliveLife=(Hashtable)getServletContext().getAttribute("liveLife");//用哈希表记录用户在聊天室的时间.HashtableuserIP=(Hashtable)getServletContext().getAttribute("userIP");//用哈希表记录用户的IP.liveLife.put((String)session.getValue("username"),request.getRemoteAddr());//记录用户的登录时间.(3)聊天界面用户通过验证后,就可以进入聊天室聊天了,进入main.html页该页调用show.jsp,link.jsp和send_1.jsp页构成聊天的主页面。main.html代码如下:<html><head><title>欢迎进入pollux聊天室</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"></head><framesetrows="*,80"frameborder="NO"border="0"framespacing="0"><framesetcols="*,20%"frameborder="NO"border="0"framespacing="0"rows="*"><framename="mainFrame"src="show.jsp"><framename="rightFrame"scrolling="NO"noresizesrc="link.jsp"></frameset><framename="bottomFrame"scrolling="NO"noresizesrc="send_1.jsp"></frameset><noframes><bodybgcolor="#FFFFFF"text="#000000"></body></noframes></html>link.jsp页为显示聊天室的状态和链接其他页面,代码如下:<html><metahttp-equiv="refresh"content="120"><title></title><head><basetarget="_self"></head><bodybgcolor="#00FF00"><%@pagecontentType="text/html;charset=gb2312"%><p></p><divalign="center"><p><spanchass="cnt0">pollux聊天室</span></p></div><table

温馨提示

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

评论

0/150

提交评论