1、 1 设计目的 随着Internet技术的飞速发展,网络已经成为人们生活中不可缺少的一部分,通过聊天室在线聊天已成为网络上人与人之间沟通、交流和联系的一种方式。 为此,越来越多的网站开始提供在线聊天的功能。与此同时,聊天室也以其方便、快捷、低成本等优势受到众多企业的青睐,很多企业的网站中也加入了聊天室模块,以达到增进企业与消费者之间、消费者与消费者之间相互交流的目的。 2 开发环境 MyEclipse 9.0,SQL Server 2000,Tomcat 6.0,Window 7 JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公
2、司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 3 需求分析 3.1 功能需求: 用户打开浏览器,注册登录,登录成功后选择自己喜欢的房间,点进去聊一下,发现可聊天,这东西可以用; 有些玩家大家不喜欢,乱刷屏,就会要求管理员把他踢掉,管理员犀利踢之; 有些用户之间的聊天不喜欢被人看到,就有了悄悄话的选项; 有些用户喜欢
3、添油加醋,聊天内容字体颜色,动作表情都可以添加。 3.2 性能需求: 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:如果聊天室长期开发,必须考虑数据库的负载,管理员有清理数据库的权限; 本聊天室使用数据库,信息与数据库的连接是很频繁的,我们使用JavaBean,能轻松实现数据库与外部信息的交换; 4 概要设计 聊天室实现的主要功能是:接收各个客户端的聊天信息,然后按照其聊天对象将该信息发送到目标浏览器上。在一个浏览器的窗口中,既能输入上网者的发言,又能看到自己与他人的聊天记录。同时,为了便于上网者选择谈话对象,窗口中需要提供目前在线者
4、的名单。 4.1功能模型 数据流图如图4-1所示: 调用数据库 JSP JavaBean MySQL 调用 返回结果 返回 图4-1 数据流 4.2 系统逻辑模型 4.2.1用户信息实体E-R图 用户 Id号 用户名 密码 最近登录时间 是否为管理员 聊天信息 所在房间 发表人用户名 发表对象用户名 发表时间 动作和表情 聊天内容 是否悄悄话 Id 发送 在线用户 Id 用户名 所在房间 最近聊天时间 登录 M 1 1 1 图4-2
5、 用户实体信息E-R图 4.3 在线聊天室设计 4.3.1 模块图 在线聊天室系统 登录注册模块 聊天室模块 管理员模块 数据库管理模块 房间列表选择模块 聊天信息显示模块 信息输入模块 在线用户列表模块 图4-3 模块图 4.3.2 模块说明 分为4个模块: 1.数据库通用管理模块: 完成数据库的连接,查询,更新功能 封装在JavaBean中(DBConn.java) JSP页面或者其他JavaBean可以通过调用DBConn对象的方法 连接 操作数据库。 2.用户登录注册模块:
6、聊天室注册简化,将注册和登录融合一起,第一次登录,如果用户信息表中没有该用户名,即时添加。下次登录可以继续用此用户,登录后用户就会带着自己的登录信息(session),遨游聊天室模块。 3.聊天室模块 先有个房间列表供用户选择,用户选择自己喜欢的房间进入聊天室。聊天室有个框架里面分为3个部分:输入消息 显示消息 在线用户列表 4.管理员功能模块 判断是否为管理员 有个友好的界面 通过点击页面,实现对数据库的删除修改查询 5 详细设计与实现 5.1详细数据库
7、编码 create table userinfo #用户信息表 ( id int primary key auto_increment, username varchar(50), pass varchar(50), lastlogintime datetime, role int #1-管理员 0-普通会员 ); create table msginfo #聊天记录表 ( id int primary key auto_increment, chatroom varchar(50), msgfrom varchar(50), msgto var
8、char(50), chattime datetime, chataction varchar(50), msgcontent varchar(200), secret tinyint(1) #1 悄悄话 0 非悄悄话 0默认 ); create table useronline #在线用户表 ( id int primary key auto_increment, chatroom varchar(50), username varchar(50), lastchattime datetime, ); 5.2 详细图表介绍 1.注
9、册登录模块 login.jsp logincheck.jsp 图5-1 登陆界面 2.聊天室模块 图5-2 聊天室 图5-3 聊天室内 3.管理员模块 图5-4 管理员登陆界面 5.3 编码处理 数据库通用管理模块 DBConn.java 注册登录模块 login.jsp 登录界面 弄个表单提交 再加上JS的空值验证 logincheck.jsp 登录检测处理 UserinfoMgr.java 封装了登录检测用户信息和添加用户信息方法的JavaBean 方
10、法有check() saveToDB() 聊天室模块 sessioncheck.jsp 检测session信息判断用户是否登录 chatframe.jsp 框架 包含 显示 在线列表 输入 三个框架 JavaBean有 Msg.java 聊天消息封装体 UserOnline 在线用户封装体 ChatRoomMgr.java 聊天室管理 子模块: 聊天室列表选择模块 roomlist.jsp 聊天室选择页面 roomlistdeal.jsp 聊天室选择并处理页面 信息显示模块 sho
11、wmsg.jsp 聊天信息显示页面 getmsg.jsp 聊天信息加载页面 实现无刷新 showmsg的任务:1.加载真正得到消息,并实时刷新的页面,实现不闪烁效果。2.确定加载内容的位置 getmsg的任务: 1.刷新,JS实现无声音 2.各种操作得到结果 3.在具体位置显示结果 在线列表模块 onlinelist.jsp 在线用户列表页面 信息输入模块 input.jsp 信息输入页面 sendmsg.jsp 信息输入处理 logout.jsp 离开房间处理 changeroom.jsp 重新选择房间处理 管理
12、员模块 maneger.jsp 管理员高级页面 kick.jsp 踢人功能 管理员踢人实现 manager.jsp 先判断是不是管理员,如果不是,提示并退出窗口 本页面直接对数据库操作,显示所有在线玩家列表,和最近发言时间 checkbox复选框传递用户名串names kick.jsp 接下来是爽快的踢人操作 调用ChatRoomMgr 的logout()方法,依次传递names[i]就实现批量踢人踢完之后提示,并刷新manager.jsp 测试的情况分析 1.注册登录功能的测试 比如
13、正确账号 admin , 密码 123 (1)测试数据:输入账号 admin 输入密码123 预期的输出结果:跳转到roomlist.jsp页面 并且能获得 session值 实际运行结果如下图所示: 运行结果符合预期情况。 (2)测试数据:输入账号admin 124 预期的输出结果:提示您输入的用户或密码错误,请重新输入 实际运行结果如下图所示: 您输入的用户或密码错误,请重新输入 运行效果符合预期情况。 (3)测试数据:输入账号admin000, 123 (这个账号数据库里没有) 预期的输出结果:直接注册成功,跳转到roomlist.jsp页面 运行结果符
14、合预期情况。 5.总结 本设计实现了在线聊天系统的基本功能,虽然没有华丽的界面,超强的性能,就练手学习而言绰绰有余。 通过在线聊天室的设计,感觉动手能力增强了很多,JAVA编程能力有了比较大的提升。设计本系统,是对自己专业知识的一次检验,也是一次增强自身综合素质机会。软件工程这门课程将我们从局部的编写程序带入了整体开发软件的阶段,这是对我们知识与能力的一种挑战。本文是软件工程在线聊天室系统的开发说明,重点描述运用软件工程知识对系统进行分析、设计和实现的思想,其中包括软件生命周期的三个主要方面:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编
15、码、测试)和运行维护。通过对开发本系统的文档的书写,更进一步学习了软件开发的全过程,把软件工程知识与实际开发软件相结合,规范了实际开发软件程序的全过程,为将来的毕业设计做准备。 总之,本次设计锻炼了实践能力,增长了我发现问题、解决问题的能力,大大丰富了自己的专业知识和技能。由于各种原因,系统的功能还没有得到进一步的完善,以后会继续努力,在今后的学习过程中,不断地提高自己。 其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。 二.培训的及要求培训目的 安全生产目标责
16、任书 为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标: 一、目标值: 1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。 2、现金安全保管,不发生盗窃事故。 3、每月足额提取安全生产费用,保障安全生产投入资金的到位。 4、安全培训合格率为100%。 二、本单位安全工作上必须做到以下内容: 1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。 2、保证公司
17、各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。 3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。 4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。 5、在公司及政府的安全检查中杜绝各类违章现象。 6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。 7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。 8、虚心接受员工提出的问题,杜绝不接受或盲目指挥; 9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。 10、必须按规定对单位员工进行培训和新员工上岗教育; 11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。 三、 安全奖惩: 1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。 2、每月接受主管领导指派人员对安全生产责任状的落






