目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1选题背景及意义 1
1.2国内外研究现状 2
1.2.1 国内研究现状 2
1.2.2 国外研究现状 2
1.3主要研究成果与趋势 3
1.4研究主要内容 4
第2章 开发技术工具概述 5
2.1 JSP技术 5
2.2 SSH框架 6
2.3 Servlet技术 7
2.4 MyEclipse开发工具 9
2.5 Mysql数据库技术 9
2.6 Tomcat应用服务器技术 10
第3章 系统分析 12
3.1系统设计概述 12
3.2系统功能 12
第4章 系统设计 14
4.1系统总体设计 14
4.2系统数据库设计 20
4.2.1数据库 20
4.2.2基本表的设计 20
第5章 功能实现 23
5.1用户注册与登录功能 23
5.1.1用户注册 23
5.1.2用户登录 25
5.2用户选择聊天房间功能 26
5.2.1用户登录时选择聊天室房间 26
5.2.2用户聊天时更改聊天室房间 28
5.3用户聊天功能 29
5.3.1显示功能 29
5.3.2用户信息修改功能 31
5.3.3处理功能 33
5.3.4输入功能 34
5.3.5查看在线聊友功能 37
5.3.6私聊功能(悄悄话) 38
5.3.7趣味聊天功能 40
5.4高级用户管理功能(踢人禁言) 42
5.5共享文件功能 46
5.5.1上传功能 46
5.5.2下载功能 50
5.6音乐播放功能 54
第6章 系统测试 59
6.1测试主要内容 59
6.2测试详情 59
第7章 总结与展望 61
7.1对存在问题的处理 61
7.1.1边框的处理 61
7.1.2登录页面中的验证码问题 61
7.1.3其他问题 62
7.2心得体会 63
参考文献 66
致 谢 67
1.3主要研究成果与趋势
现在网络聊天系统的研究成果已经非常成熟,无论是过外还是过内,都做出了非常好的即使聊天工具,且都占用了很多的用户,拥有很高的用户活跃度,得到了很多的网络流量,为公司的崛起起到了很好的效果。现在大部分的网络聊天系统都基本上用得是java+socket+swing的实现方式。这是比较小的聊天软件的实现方式。要是qq就是用得是vc++。毕竟,大型软件及可靠性又要集成美观的话,还是用vc++开发的比较好,而最有性格的则是facebook,它是使用的html5搭建的网站。将来的趋势是要偏向于qq和facebook等这种大型软件,一款合格的即时聊天工具不仅仅要做到可以提供用户即时通讯的作用,还要很好的保持用户粘性,保持这个软件的用户活跃度。这样能够保证公司的网络流量,网络流量对于一个互联网公司而言就是血液。所以,现在一款合格的即时聊天工具往往还要做很多的功能拓展,比如qq的空间,支付,宠物甚至音乐,视屏等等。覆盖到用户生活的方方面面。这样才能很好的保持用户的粘性。Facebook也是如此,它加入了图片分享功能,对于一款网络即使聊天工具来说,它不仅仅算是合格了,所以,我觉得未来的网络聊天工具的趋势是要趋向于多功能,并且覆盖用户生活的方方面面。
1.4研究主要内容
针对所学知识以及对网页版应用系统的了解,根据用户在实际聊天中的需求,确定开发以Java-网页版技术为主的一个在线网页版网络聊天室。主要满足用户对群聊,私聊等功能的需要。基于MyEclipse平台,通过Java编程语言、Mysql数据库技术进行开发,初步涉及了框架的思想以及对SSH的运用。
本系统的开发工作分为以下几个主要阶段:
(1)系统需求分析。包括用户需求分析,系统调查。
(2)系统的功能设计。
(3)数据库的设计。E-R图、创建数据表。
(4)系统的功能模块的划分以及实现。根据系统所管理的数据的类别不同,对数据操作进行功能划分,分别实现功能模块。
系统的测试。单元测试,以及将单个实现的功能整合为一体,进行整体性能测试。对存在的错误和不足,予以及时的修正。
第4章 系统设计
4.1系统总体设计
设计模式是面向对象设计中常见问题的类级与方法级的解决方案。模式是做事的方法,是实现目标,研磨技术的方法。[10]本系统在主页面使用了框架,多数页面均包含有首页面(head.jsp)和尾页面(foot.jsp),本文转载自http://www.biyezuopin.vip/onews.asp?id=11941 一些用于判断的页面使用了servlet控制。本聊天室还拥有两张图片,即背景图片和首页面的图片。
图4.1 系统总体模块
该聊天系统主要由用户注册、用户登录、主聊天室和一些修改功能组成,系统的总体流程图如下所示:
图4.2 系统总体流程图
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<%
request.setCharacterEncoding("gb2312");
String chatroom = request.getParameter("chatroom");//通过递交完成改变
session.setAttribute("chatroom", chatroom);//更改session中的房间 记录
String username = (String) session.getAttribute("username");//根据用户名更改数据库中的房间记录,彻底完成房间的更换
db.executeUpdate("update user_list set chatroom='"+chatroom+"' where username='"+username+"'");
%>
欢迎光临本聊天室
您的浏览器不支持框架,对不起!