第1页摘要网上聊天室是网络用户最喜欢的Web应用程序。借助聊天室,用户可以即时地互通信息,交流思想。聊天室程序设计根据需求的不同可繁可简。本系统实现的是一个具有简易功能的聊天室,是使用JSP技术开发的动态网站。系统开发的任务主要包括前台界面设计和后台数据库管理系统设计。本系统采用JSP作为开发工具,后台数据库采用SQLserver数据库设计,利用SQLserver数据库访问技术实现对数据库的各种管理操作,实现聊天室的聊天功能和显示在线聊天用户信息等功能关键词:jsp,java,sql第2页目录1网站建设目的及网站类型定位………………………………32可行性分析……………………………………………………33需求分析…………………………………………………………44系统概要设计……………………………………………………55系统需要解决的主要问题……………………………………66系统前台模块设计……………………………………………69心得体会………………………………………………………10第3页JSP在线聊天室1网站建设目的及网站类型定位1.1网站建设目的随着Internet的普及和宽带网络技术的成熟,越来越多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。与此同时,一个新型的Web应用程序为网民之间提供了一个即时互通信息的功能和场所,这就是聊天室。聊天室在网络早期就开始盛行了,不论是BBS、IRC都有类似的网上聊天机制。聊天室为网友提供了实时对话的渠道,是网络上极为流行的一种服务。聊天室适用于网上会议或闲聊的场合。聊天室为网友提供了较好的交友环境,网友之间互相以文字交谈,在形式上类似笔友的性质,却大大节省了书信往返的时间。1.2网站类型定位网上聊天系统网站2可行性分析可行性分析是依据初步调查的结果作出系统开发可行性与否的结论的过程。可行性分析是从技术可行性、经济可行性和运行可行性三个方面考虑的,论证系统开发是否可行。2.1技术可行性分析为实现系统目标,需要技术保证。此系统开发所需要的技术主要有计算机硬件、软件技术、系统开发人员的水平、用户管理与使用的能力等。通过比较ASP和JSP这两种传统的动态网页制作技术,觉得JSP具有明显的优势:(1)作为Java平台的一部分,JSP拥有Java编程语言“一次编写,到处运行”的特点,一次写入之后,可以运行在任何具有符合Java语法结构的环境中,取代过去单一开发。而ASP主要工作环境是微软的IIS应用程序,又因Activex对象具有平台特性,所以ASP技术不能很容易的实现跨平台的WEB服务器的工作。(2)ASP仅支持组建对象模型COM,而JSP技术提供的组建都是基于第4页JavaBean技术或JSP标签库。除此之外,JSP还有组件的可重用性,标签的可扩充性和易于维护等特点。如上的分析比较不难看出,JSP技术编写的程序运用要更加灵活,可扩展性更强,在现有技术条件下,能够完成功能目的。鉴于以上分析,系统开发在技术上是完全可行的。2.2经济可行性分析本系统开发在软件方面主要使用了JSP网站设计技术、Dreamweaver、MyEclipse、sqlserver后台数据库等软件,这些均可在网上下载获得,注册码且不涉及商业盈利问题,因此,在经济方面可行。2.3社会因素可行性分析本系统仅作为实习项目而提出。不会违反相关法律法规。且本系统能保证在当前的操作环境下正常运行。Jsp在线聊天室,实现了一对一,一对的多,多对多的聊天,非常方便.综上所述,系统开发完全可行。3需求分析这是一个具有最简单功能的聊天室。通过该聊天室,用户可以通过设置不同的用户名和密码以各种不同的身份进入聊天室,用户可以在聊天室中发送信息,也可以和指定的聊天对象用户私聊,还可以对发送的信息进行动作、颜色等方面的限制。还应具有当有新用户进入聊天室时,实时更新在线用户的功能。聊天室的特点就是要求能够实时显示出聊天者所谈的内容。即在同一个聊天室的使用者,可以在短时间内立刻看到其他聊天者的发言。作为用户喜欢的Web应用程序,出了具有能够实时显示出聊天者所谈论的内容外,还应具有以多种方式发布信息的功能。JSP正好可以满足聊天室的这种要求,它可以快速地创建和显示Web页面的动态内容。总的来说,本聊天室主要实现了以下的功能:用户输入帐号,密码登录聊天室把用户的聊天信息写入数据库新用户可以注册用户聊天室可以选择聊天对象(私聊,群聊)聊天室不断地对数据库进行刷新、读取实时更新在线的用户第5页4系统概要设计4.1系统功能模块图4.2系统流程图用户登陆用户退出聊天发言显示聊天信息显示在线用户用户注册Jsp在线聊天室开始用户登陆第6页5系统需要解决的主要问题在规划设计聊天室时,首先要确定好谈话内容存储方式,JSP可以用三种形式实现聊天内容的存取:1)用全局变量Application和Session对象实现。这种形式速度快、效果好,但较消耗系统资源。2)用读写数据库的方法实现。这种方法相对简单,但会使数据库负担重。本系统采用的就是该方法。本设计选择了sqlserver数据库来存储谈话内容。3)用读写文本文件方法。该方法适合简单的聊天室。另一个设计聊天室时要考虑的因素就是聊天室成员的动态刷新。6系统前台模块设计6.1用户登录模块本系统需注册,输入用户名和密及即可。登录成功后,显示在线用户列表,可以发送信息,在线用户表中增加刚才登录的当前用户的名字。如图所示:帐号判断帐号错误提示从新输入或注册帐号正确张却显示聊天内容结束第7页6.2用户注册模块设计该模块的主要作用是实现用户注册。当用户输入注册信息内容时,系统会根据用户输入的内容进行验证,验证成功后,提示用户注册成功,提示返回到登录界面第8页6.3聊天者发言模块设计该模块的主要作用是实现聊天者以各种表情、各种身份、不同颜色的文字对不同的用户发送聊天信息。当用户以正确的用户名和密码登录聊天室后就可以通过聊天者发言的功能,发送聊天信息。第9页6.4修改用户信息用户点击左边的用户信息图片,就会显示出该用户所有的信息并修改。第10页5.心得体会此次课程设计到此告一段落,在此次课程设计中,我有很多感触。课程设计是我们专业课知识综合运用的实践训练,是对专业知识的总结与考察,是从事将来的工作前的一个不可或缺的过程。刚拿到设计题目时,我们还是比较迷茫的,感觉无从下手。所以我们并没有急于下手,而是花了一定的时间去分析题目,设计出其大致运行原理,并进行一定的论证和改进。在方案确定之后,再去查阅资料,选定方式,通过所选设计原理来重新改进设计方案。至此,项目的思路已经较为清晰。我们在刚开始的时候因为理解问题,使用了错误的方法实现了部分设计目的,不过在纠正错误的过程中,我们对题目的理解却更加深入了。所以在接下来的时间,我们在电脑上没有花太多的时间就完成并进一步改进了最初的设计,并且完成了验证与测试。在本次课程设计中,我发现了很多问题,虽然以前也做过类似这样的设计,但是这次设计让我有了很大的长进。通过这次设计,我把理论和实际紧密的联系在了一起,感觉学习的深度在课本的基础上更深入了一层。有些事情,只有我们真正去做了,才能真正的掌握它,理解的更加深刻。此次课设让我意识到光学理论知识是远远不够的。总的来说,此次课程设计虽有挫折,但还是收获颇丰。随有收获,但得不偿失!浪费了十天啊!花了500大洋有木有?考研的东西都没时间看!那食宿恶心死了!劳资又不搞IT啊!第11页参考书目:[1]杨昭.JSP课程设计案例精编[M].北京:中国水利水电出版社,2005.[2]武延军,黄飞跃.精通JSP编程技术[M].北京:人民邮电出版社,2001.[3]赛奎春.JSP工程应用与项目实践[M].北京:机械工业出版社,2005.[4]贾素玲,王强.JSP应用开发技术[M].北京:清华大学出版社,2008.[5]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.[6]刘瑞新.ASP动态网站开发毕业设计指导及实例[M].北京:机械工业出版社,2005.