jsp在线聊天室毕业设计Word文档下载推荐.docx
- 文档编号:810617
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:38
- 大小:1.28MB
jsp在线聊天室毕业设计Word文档下载推荐.docx
《jsp在线聊天室毕业设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《jsp在线聊天室毕业设计Word文档下载推荐.docx(38页珍藏版)》请在冰点文库上搜索。
6.4查看聊天信息 20
6.5文件上传 21
6.6文件下载:
22
6.7音乐播放器 23
7系统后台管理模块 24
7.1后台登录 24
7.1后台用户管理模块 25
7.2聊天记录管理模块 29
7.3公告管理模块 30
8逻辑控制模块的设计 35
9系统的测试和维护 35
10JSP在线聊天室测试 35
结束语 35
谢辞 36
参考文献 36
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技术提供的组建都是基于JavaBean技术或JSP标签库。
除此之外,JSP还有组件的可重用性,标签的可扩充性和易于维护等特点。
如上的分析比较不难看出,JSP技术编写的程序运用要更加灵活,可扩展性更强,在现有技术条件下,能够完成功能目的。
鉴于以上分析,系统开发在技术上是完全可行的。
2.2经济可行性分析
本系统开发在软件方面主要使用了JSP网站设计技术、网页制作三剑客、
MyEclipse 8.6、Oracle后台数据库等软件,这些均可在网上下载获得,注册码且不涉及商业盈利问题,因此,在经济方面可行。
2.3社会因素可行性分析
本系统仅作为实习项目而提出。
不会违反相关法律法规。
且本系统能保证在当前的操作环境下正常运行。
Jsp在线聊天室,实现了一对一,一对的多,多对多的聊天,并且能共享文件,非常方便.
综上所述,系统开发完全可行。
3需求分析
这是一个具有最简单功能的聊天室。
通过该聊天室,用户可以通过设置不同的用户名和密码以各种不同的身份进入聊天室,用户的类型有两种:
普通用户和管理员。
普通用户可以在聊天室中发送信息,也可以和指定的聊天对象用户私聊,还可以对发送的信息进行动作、颜色等方面的限制。
管理员出了具有普通用户的功能外,还可以对在线用户和所有数据库中的用户进行设置,以便对聊天室进行维护。
管理员可以把在线用户踢出聊天室,还可以删除其他管理员不希望再次进入聊天室的用户。
聊天室又分为三类,用户可以根据自己的需要进入不同的聊天室进行聊天。
系统还应具有自动把在线但不发言的时间超过系统设置的时间的用户踢出聊天室和的功能,还应具有当有新用户进入聊天室时,实时更新在线用户的功能。
聊天室的特点就是要求能够实时显示出聊天者所谈的内容。
即在同一个聊天室的使用者,可以在短时间内立刻看到其他聊天者的发言。
作为用户喜欢的Web应用程序,出了具有能够实时显示出聊天者所谈论的内容外,还应具有以多种方式发布信息的功能。
JSP正好可以满足聊天室的这种要求,它可以快速地创建和显示Web页面的动态内容。
总的来说,本聊天室主要实现了以下的功能:
l用户输入帐号,密码登录聊天室
l把用户的聊天信息写入数据库
l用户可以修改聊天语句的颜色,选择说话动作
l用户聊天室可以选择聊天对象(私聊,群聊)
l聊天室不断地对数据库进行刷新、读取
l实时更新在线的用户
l管理员管理在线用户
用户登陆
管理员登陆
普通用户登录
4系统概要设计
4.1系统功能模块图
Jsp在线聊天室
聊天发言
显示聊天信
显示在线用
文件共享
用户退出
查看用户信息
踢出在线用户
删除注册用户
选择动作
选择聊天对象
显示聊天内容
选择聊天室
4.2系统流程图
开始
帐号正确
帐号错误
帐号判断
否
是
是否管理员
提示从新输入或注册
是否退出
结束
4.3数据库逻辑结构设计
建立一个名为chatroom的orcal数据库。
数据库中共使用四个表分别名为:
表4-1
用户信息表(userinfo)
列名
数据类型
长度
允许空
User_name
varchar
50
password
User_id
int
8
User_mail
Yes
flag
表4-2
在线用户表(onlineuser)
长度 允许空
Chat_room
varcahr
204
Login_time
datetime
表4-3
聊天记录(msginfo)
chatroom
msgfrom
msgto
msgkind
msgcontent
text
16
msgtime
date
4
表4-4公告表(Publiser)
P_name
P_user
表4-5管理员表(admin)
表4-6
聊天室表(chatinfo)
chatid
Chatname
chatmsg
4.4数据库表ER图
用户名
密码
用户
标志
用户表
m
n
显示
在线表
邮箱
登陆时间
1
操作
查看
聊天室
接收者
管理员名
聊天记录
公告表
发送者
发送时间
管理员
发送内容
发送内型
5系统需要解决的主要问题
在规划设计聊天室时,首先要确定好谈话内容存储方式,JSP可以用三种形式实现聊天内容的存取:
1)用全局变量Application和Session对象实现。
这种形式速度快、效果好,但较消耗系统资源。
2)用读写数据库的方法实现。
这种方法相对简单,但会使数据库负担重。
本系统采用的就是该方法。
本设计选择了Oracle数据库来存储谈话内容。
3)用读写文本文件方法。
该方法适合简单的聊天室。
另一个设计聊天室时要考虑的因素就是聊天室成员的动态刷新。
有的用户在退出聊天室时并不是从退出链接退出的,但服务器并不知道用户已经离开了。
因此需要建立一个在线用户数据库,每隔一段时间检查一次,看用户从最后一次发言到现在是否超时,若是,则将该用户自动删除。
6系统前台模块设计
6.1用户登录模块
本系统需注册,输入用户名和密及即可。
登录成功后,显示在线用户列表,可以发送信息,在线用户表中增加刚才登录的当前用户的名字。
如图所示:
图6-1用户登录界面
其代码为:
1.<
divclass="
title"
>
2.<
marqueewidth=100%height="
100"
<
h1>
欢迎来到HH聊天室!
/h1>
/marquee>
<
/div>
3.<
d"
style="
padding-top:
10px;
"
4.<
form"
id="
form1"
action="
user.do"
5.<
item"
6.<
formaction="
7.<
fl"
spanclass="
label"
>
用户名:
/span>
inputtype="
text"
loginname"
name="
class="
tabindex="
1"
value="
/>
8.<
密码:
password"
loginpwd"
2"
9.<
&
nbsp;
checkbox"
checked="
checked"
id="
chkRememberUsername"
记住用户名&
10.<
f2"
chkRememberMe"
自动登录<
11.<
hidden"
method"
login"
/>
12.<
div>
image"
src="
image/1.jpg"
sytle="
cursor.hand"
onclick="
this.form.submit()"
13.<
/form>
14.<
15.<
16.<
用户从登陆页面进入聊天室时,如果登录失败则显示出错原因。
图6-2用户名或密码为空
从界面获取数据,将数据封装在UserVo中,将UserVo作为一个整体的对象传递给Dao层,在其Dao层,根据传递过来的数据从数据库中进行查找,如果数据库中存在,刚登录成功,否则提示登录错误。
实现登录界面验证的相关代码为:
(user.action)
1.publicvoidlogin(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
2.UserVouser=newUserVo();
3.Stringuser_name=newString(request.getParameter("
).getBytes("
ISO-8859-1"
),"
utf-8"
);
4.user.setUser_name(user_name );
5.user.setUser_pwd(request.getParameter("
));
6.try{
7.intusertype=service.queryUser(user);
8.if(usertype>
0){
9.java.util.Datenowdate=newjava.util.Date();
10.Stringchattime=nowdate.toLocaleString();
11.InOnLineUserVovo=newInOnLineUserVo();
12.vo.setUsername(user_name);
13.vo.setChatroom("
14.vo.setLogintime(chattime);
15.request.getSession().setAttribute("
username"
user.getUser_name());
16.request.getSession().setAttribute("
usertype"
usertype);
17.response.sendRedirect("
frame.jsp"
);
18.intflag=service.add_onlineuser(vo);
19.return;
}else{//ʧ��ת��Login.jsp
20.response.getWriter().println("
script>
alert('
登录失败!
'
location='
index.jsp'
;
/script>
1.}
ii.}catch(Exceptione){
1.e.printStackTrace();
UserDao对应的代码为:
publicintqueryUser(UserVouser){
//TODOAuto-generatedmethodstubConnectionconn=ConnTools.conn;
intcount=0;
try{
PreparedStatementstmt=conn.prepareStatement(Constants.QUERY_USER );
stmt.setString(1,user.getUser_name());
stmt.setString(2,user.getUser_pwd());
ResultSetrs=stmt.executeQuery();
if(rs.next()){
count=1;
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblocke.printStackTrace();
}/*finally{
ConnTools.close(conn);
}*/
returncount;
验证成功后进入到的主界面
图6-3聊天室主界面
系统的主界面是一个框架页面frame.jsp,定义如下:
FRAMESETROWS="
40,*"
>
FRAMESRC="
head.jsp"
NAME="
head"
noresize frameborder=0>
/frame>
3.<
FRAMESETCOLS="
200,*,200"
left.jsp"
left"
noresizeframeborder=0>
*,100"
receive.jsp"
receive"
send.jsp"
send"
/FRAMESET>
online.do"
right"
noresize frameborder=0
/frameset>
noframes>
BODY>
H1>
浏览器不支持框架多页面显示,建议使用IEv4.0以上版本。
谢谢你的支持!
/H1>
/BODY>
/noframes>
此框架页面由四部分组成:
l左边的框架,用来显示各种功能,打开的网页文件为:
left.jsp
l上面的框架,用来显示欢迎聊天者进来聊天,打开的网页文件为:
head.jsp。
l中间框架:
其本身是一个frame框架,为发送、接收信息。
打开的网页文件为send.jsp;
receive.jsp
l右边的框架:
用来显示所有在线聊天用户的信息,打开的网页文件为:
right.jsp。
6.2用户注册模块设计
该模块的主要作用是实现用户注册。
当用户输入注册信息内容时,系统会根据用户输入的内容通过ajax进行验证,验证成功后,提示用户注册 成功,否刚提示注册失败,返回到登录界面。
用户注册页面:
实现用户注册的及ajax验证的相关代码为:
//创建XHR
functioncreateXHR(){varXHR;
if(window.XMLHttpRequest){
XHR=newXMLHttpRequest();
//非IE
}elseif(window.ActiveXObject){try{
XHR=newActiveXObject("
Msxml2.XMLHTTP"
//新
的IE
}catch(e){
//旧的IE
XHR=newActiveXObject("
Microsoft.XMLHTTP"
returnXHR;
//通过编码查询
functiongetValue(loginname){
varloginname=document.f.loginname.value;
//获取XHR对像
varXHR=createXHR();
//alert(XHR);
varurl="
user.do?
method=validate_User&
users_name="
+loginname+"
flag="
+Math.random();
XHR.open("
get"
url,true);
varspan=document.getElementById("
span"
//通过回调函数监听与服务端通信的状态onreadystatechangeXHR.onreadystatechange=function(){
if(XHR.readyState==4&
XHR.status==200){varflag=XHR.responseText;
if(flag>
0){
span.innerHTML="
fontcolor='
blue'
用户名已
存在!
/font>
用!
}else{
用户名可
span.style.display="
block"
};
XHR.send(null);
}
functionvalidate_Pwd(){
varpassword=document.f.loginpwd.value;
varpassword_1=document.f.loginpwd1.value;
varspan_pwd=document.getElementById("
span_pwd"
if(password!
=password_1){
span_pwd.innerHTML="
red'
俩次密码不同!
密码验证通过!
span_pwd.style.display="
functionvalidate_email(mail){
var_reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 在线 聊天室 毕业设计