在线聊天系统,关键代码,(jquery.ajax)

在线聊天系统:

(jquery.ajax版本,定时刷新页面,且聊天内容不保存到数据库)


其实可以使用DWR推技术。有值进入,才刷新页面,


关键点:

【一】显示在线人数及其列表

【二】显示聊天内容 

         ① XXX进入聊天室

         ② XXX说什么话

         ③ XXX离开聊天室

【三】发送聊天信息

第一部分,页面

①  Chat.jsp页面:

<div class="container">
	<table height="300px" id="tb_chat" border="0" cellpadding="0" cellspacing="0">
		<tr>
			<td width="80px" valign="top" bgcolor="#f6fded" id="online">
			</td>
			<td width="480px" height="200px" valign="top" bgcolor="#FFFFFF">
				<div style="height:290px; overflow:auto;text-align:left;pading:5px;" id="content">聊天内容</div>
			</td>
		</tr>
	</table>
	<br>
	<input type="text" id="message" size=50 placeholder="请输入信息">
	<input type="button" id="button" class="btn btn-primary" value="发送">
</div>

【id】online,插入在线人数列表

【id】content,插入聊天内容

【id】message,输入框

【id】button,发送按钮


②online.jsp页面:

<%@ page import = "chat.entity.UserList" %>
<%@ page import = "java.util.Vector" %>
<%
	UserList ul=UserList.getInstance();
	Vector vector=ul.getUserList();
	int amount=0;
%>
<table align="center">
	<tr>
		<td>当前在线</td>
	</tr>
	<%
	if(vector!=null && vector.size()>0){
		String username="";	 
		amount=vector.size();
		for(int i=0;i<amount;i++){
			username=(String)vector.elementAt(i);
	%>
	<tr>
		<td height="23" ><%=username%></td>
	</tr>
	<%
		}
	}
	%>
</table>


③ content.jsp页面:

${message}


第二部分:jquery

【一】插入在线列表

window.setInterval("showOnline();",10000);
$(function(){
	showOnline();
})
//显示在线人员
function showOnline(){
	$.ajax({
		url: "toonline.action",
		type:"get",
		success: function(data){
			//alert(data);
			$("#online").html('');
			$("#online").append(data);
		}
	});
}
		


【二】插入聊天列表

window.setInterval("showContent();",1000);
$(function(){
	showContent();

})
//显示内容
function showContent(){
	$.ajax({
		url: "chat.action",
		type:"get",
		success: function(data){
			//alert(data);
			$("#content").html('聊天内容');
			$("#content").append(data);
		}
	});
}


【三】发送

$(function(){
	//提交表单
	$("#button").click(function(){
		if( $("#message").val()=="" ){
			alert("还没输入呢");
		}else{
			var varmessage = $("#message").val();
			$.ajax({
				url:"send.action",
				type:"POST",
				data:{message:varmessage},
				success: function(data){
					$("#message").prop("value","");
					//alert("ddd");
				}
			});
		}
	});
});



第三部分:后台

【一】显示在线人数及其列表

在登录的时候,专门用一个vector,来存取人的名字,作为列表

【二】显示聊天内容 

         ① XXX进入聊天室

这个在登陆的时候,顺带写到application里的message

         ② XXX说什么话

后台接收到消息后,弄成合适的输出结构,获取原先讲到一半的message里,再向里面插入,存回message

         ③ XXX离开聊天室

退出时,顺带写到application里的message

【三】发送聊天信息

同上②





② content.jsp页面:

${message}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JASChatWeb 网页聊天室 1.0版--群聊+私聊+贴图 预览 http://ww1.sinaimg.cn/large/560ce489gw1dhm3ju5uxgj.jpg 经过多人 多浏览器测试,效果良好 实现了各种聊天常用功能 (1)群聊 (2)私聊 私聊窗口可拖动关闭 (3)在线用户列表 (4)修改文字颜色 (5)贴图功能 可设置图片大小, 并且可以预览 (6)清除聊天消息记录 (7)声音功能 并可手动关闭和打开 (8)头像 (9)表情 另内里有桌面版和源程序,服务器端口设置了1215 ------------------------------------------------------- 如何使用,部署 MySql: (1)用winrar打开 JASChatWeb.war文件, 在目录 \WEB-INF\classes\com\jas\www 下找到 jaschatweb.sql文件, 解压到C盘根目录 (2)用winrar打开 JASChatWeb.war文件, 在目录 \WEB-INF\classes\com\jas\www 下找到 DB.java文件 找到: conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/mydata?user=scott&password=tiger"); 把3307的端口改成你的mysql开放端口(默认是3306) (3)MySql中用管理员权限运行 source c:\jaschatweb.sql (建表文件) Tomcat: (1)把压缩包里的 JASChatWeb.war文件 放置到 tomcat/webapps目录下 (2)打开tomcat/conf/web.xml文件 ,找到 <session-timeout>30</session-timeout> 一行, 把30改成 1-5的数(作用设置是session超时时间,用于扑捉用户直接关闭浏览器时的下 线状态) 完成以上两步后打开tomcat即可在浏览器运行 http://你的IP:tomcat设置端口/JASChatWeb/ 打开 -------------------------------------------------------- --------------------------------------------------------------- 技术实现: JSP+Servlet+mysql+jquery+ajax+flash(实现各浏览器播放声音) 主要文件介绍: 前端 (1)login.jsp--登陆页,设置session,还有更改了用户的登陆状态 (2)index.jsp--主要聊天页面 (3)jas.js -- jquery+控制声音flash插件+颜色选择器 (4)jas2.js -- 页面主要逻辑的JS, 各种前端功能实现 (5)tom.js -- 后期做的实现了聊天框拖曳的JS (6)jas.css -- 页面布局 后台 (1)DB.java --用于JDBC的链接 (2)Deal.java --群聊的收发逻辑 和 数据库交互 (3)Ptalk.java -- 私聊的各种逻辑(收发只在内存中,没使用数据库) (4)UserList.java -- 用户列表的逻辑 (5)SL.java ServetLogout.java -- 两个监听器,一个负责监听用户session超时,另一个用于服务器关闭时清除用户登陆状态 -----------------------------------------------------------------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值