1、网页聊天室需求分析聊天室的设计与实现实验报告计算机科学与技术学院2011电子商务组长:20110874005张艺婧成员:20110874002张博20110874006徐偏偏20110874007滕雪娇20110874011宋丽红20110874015郑元斌20110874025杨海磊 一、目的和意义这是一个具有最简单功能的聊天室。通过该聊天室,用户可以通过设置不同的用户名和密码以各种不同的身份进入聊天室,用户的类型有两种:普通用户和管理员。普通用户可以在聊天室中发送信息,也可以和指定的聊天对象用户私聊。管理员出了具有普通用户的功能外,还可以对在线用户和所有数据库中的用户进行设置,以便对聊天室
2、进行维护。管理员可以把在线用户踢出聊天室,还可以删除其他管理员不希望再次进入聊天室的用户。聊天室又分为三类,用户可以根据自己的需要进入不同的聊天室进行聊天。系统还应具有自动把在线但是不发言的时间超过系统设置的时间的用户踢出聊天室和的功能,还应具有当有新用户进入聊天室时,实时更新在线用户的功能。聊天室的特点就是要求能够实时显示出聊天者所谈的内容。即在同一个聊天室的使用者,可以在短时间内立刻看到其他聊天者的发言。作为用户喜欢的Web应用程序,出了具有能够实时显示出聊天者所谈论的内容外,还应具有以多种方式发布信息的功能。JSP正好可以满足聊天室的这种要求,它可以快速地创建和显示Web页面的动态内容。
3、总的来说,本聊天室主要实现了以下的功能:用户输入帐号,密码登录聊天室把用户的聊天信息写入数据库多人共同聊天防止恶意刷屏语言过滤功能,避免一些敏感词汇显示当前聊天客户列表显示聊天室人员变动信息(进入聊天室、离开聊天室等)聊天室不断地对数据库进行刷新、读取二、设计中用到的知识(一)开发工具的选择TML代码和嵌入其中的JAVA代码所组成。服务器在页面被客户端请求以后对这些JAVA代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JSP技术使用JAVA编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端
4、的资源的应用逻辑。本实验利用JSP编写基础的网页跳转等代码,利用.css样式表文件规定页面所应用的格式。(二)硬件、软件、运行环境和开发环境方面的条件和限制(1)硬件资源 服务器:小型机 网络设备:网络交换机、网卡、网线 (2)软件资源服务器端软件的具体要求: 操作系统:Windows XP /Windows 7 开发平台:Eclipse 客户端软件的具体要求: Web浏览器 三、聊天室分析(一)功能模块分析1、用户注册登录模块完成新用户注册,将注册信息添加到数据库中,用于用户的股验证,经过登录验证的用户即可进入聊天室进行聊天。2、用户发言的模块除了提供聊天的内容输入外,还可显示当前用户正在对
5、谁发言,可以选择发言的颜色和发言的表情。完成聊天的内容输入外,通过单击“提交”按钮或者按回车按钮外,即可显示聊天的内容。3、聊天内容显示模块主要将每个用户的聊天内容显示到网页中,让内容对指定的内容可见(指私聊中)。4、在线用户列表显示模块其实现在线用户和在线人数的统计,并将在线用户显示出来。5、辅助区模块可提供清屏,刷新,显示名单的操作功能。6、退出系统 退出在线聊天系统,关闭页面。(二)系统功能模块图为:(三)系统流程图四、系统设计(界面、功能、数据库)建立一个名为chatroom的Mysql数据库。数据库中共使用五个表分别名为: 表4-1 用户信息表(userinfo)列名数据类型长度允许
6、空User_nameVarchar50NopasswordVarchar50NoUser_idInt8NoUser_mailVarchar50YesFlagVarchar50表4-2 在线用户表(onlineuser)列名数据类型长度允许空User_idInt10User_nameVarchar50Chat_roomVarcahr255Login_timeDatetime8表4-3 聊天记录(msginfo)列名数据类型长度允许空chatroomVarchar50msgfromVarchar50MsgtoVarchar50msgkindInt8msgcontentText16msgtimeDa
7、te4表4-4 聊天室表(chatinfo)列名数据类型长度允许空chatidInt50ChatnameVarchar50chatmsg Varchar50五、系统实现(一)登陆界面用户可以任意填写用户名登录聊天室,但不允许为空。利用javascript语言完成。实现代码:function check() if(form1.username.value=) alert(请输入用户名!);form1.username.focus();return false; else if(form1.username.value=) alert(请不要输入非法字符!);form1.username.focu
8、s();return false; 用户登录成功以后通过一个form表单跳转到main.jsp界面进入聊天状态。跳转代码: 页面如下: 页面上方的文字主要通过系统公告的方式,主要实现代码如下:var sysBBS=欢迎光临GOSSIP聊天室,请遵守聊天室规则,不要使用不文明用语。;/此处需要加?nocache=+new Date().getTime(),否则将出现在线人员列表不更新的情况。(二)聊天界面用户进入聊天界面主要以各种表情、各种文字颜色对不同的聊天者发送信息。用户可以通过聊天者发言功能,发送聊天信息,实现发言功能的程序是main.jsp 用户聊天时必须选择聊天对象,所有人和正在在线的
9、人的名称2种选项,实现方式:function set(selectPerson) /自动添加聊天对象 if(selectPerson!=$username) form1.to.value=selectPerson; else alert(请重新选择聊天对象!); 当聊天信息超过一屏时,设置最先发送的聊天信息不显示,实现代码如下:function checkScrollScreen() if(!form1.scrollScreen.checked) document.getElementById(content).style.overflow=scroll; else document.getE
10、lementById(content).style.overflow=hidden; document.getElementById(content).scrollTop = document.getElementById(content).scrollHeight*2; setTimeout(checkScrollScreen(),500); 用户选择表情时通过select 函数,具体代码如下: 无表情的 微笑着 笑呵呵地 热情的 温柔的 红着脸 幸福的 嘟着嘴 热泪盈眶的 依依不舍的 得意的 神秘兮兮的 恶狠狠的 大声的 生气的 幸灾乐祸的 同情的 遗憾的 正义凛然的 严肃的 慢条斯理的
11、无精打采的用户可以选用自己喜欢的颜色做字体颜色,具体代码如下: 字体颜色: 默认颜色 红色热情 蓝色开朗 桃色浪漫 绿色青春 青色清爽 紫色拘谨 暗夜兴奋 深蓝忧郁 卡其制服 镏金岁月 湖波荡漾 发亮蓝紫 爱的暗示 墨绿深沉 烟雨蒙蒙 /;.(三)聊天内容获取用户获取聊天内容是通过contentType 函数,代码:$message(四)信息发送用户发送信息是通过从新定向的方法,跳转页面到main.jsp中利用其中的功能代码:(五)保存用户信息 用户利用用户名进行登录,利用String username=request.getParameter(username); /
12、获得登录用户名UserInfo user=UserInfo.getInstance(); /获得UserInfo类的对象session.setMaxInactiveInterval(600); /设置Session的过期时间为10分钟Vector vector=user.getList();boolean flag=true; /标记是否登录的变量/判断用户是否登录if(vector!=null&vector.size()0) for(int i=0;ivector.size();i+) if(user.equals(vector.elementAt(i) out.println(alert(
13、该用户已经登录);window.location.href=index.jsp;); flag=false; break; /保存用户信息if(flag) UserListener ul=new UserListener(); ul.setUser(username); session.setAttribute(user,ul); session.setAttribute(username,username); user.addUser(ul.getUser(); /保存当前登录的用户名 session.setAttribute(loginTime,new Date().toLocaleStr
14、ing(); /保存登录时间 response.sendRedirect(Messages?action=loginRoom);%(六)用户登录时间过期代码:%if (null=session.getAttribute(username) | .equals(session.getAttribute(username) out.println(alert(您的账户已经过期,请重新登录!);window.location.href=index.jsp;); return;% (七)退出界面用户退出聊天室时出现欢迎您下次光临对话框,点击确定后回到主页面主要实现方式是通过button-exit按钮的
15、onclick事件,安全退出时:function Exit() window.location.href=leave.jsp; alert(欢迎您下次光临!); 当不安全退出时:window.onbeforeunload=function() /当用户单击浏览器中的关闭按钮时执行退出操作 if(event.clientYdocument.body.scrollWidth) Exit(); /执行退出操作 返回登录界面代码:(八)样式表代码:a font-size: 9pt; text-decoration: none; color: #3C404D;td font-size:12px;.btn
16、_grey font-family: 宋体; font-size: 9pt;color: #333333; background-color: #eeeeee;cursor: hand;padding:1px;height:19px; border-top: 1px solid #FFFFFF;border-right:1px solid #666666; border-bottom: 1px solid #666666;border-left: 1px solid #FFFFFF;.btn_bg background-image:url(./images/button.jpg); borde
17、r:#436E9B thin 0px; width:56px; height:20px;padding:4px; color:#FFFFFF;input font-family: 宋体; font-size: 9pt; color: #333333; border: 1px solid #777777;input.login font-family: 宋体; font-size: 9pt; color: #333333; border: 1px solid #6f9c61; width:150px; height:22px;.wenbenkuang font-family: 宋体; font-size: 9pt; color: #333333; border: 1px solid #444444;.noborderborder-style:none;-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1