博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssh+ajax(jQuery)搭建简单的聊天室
阅读量:5740 次
发布时间:2019-06-18

本文共 2558 字,大约阅读时间需要 8 分钟。

hot3.png

聊天室外观:
数据库设计:
create table message(  id int not null auto_increment,  studentId varchar not null,//关联发表者  msg text not null,//发表内容  time date,//发表时间  primary key(id));

服务器端处理用户提交信息以及返回:

如果有用户提交信息便插入数据,并保存10条记录,多出的删除,不断更新;从数据库中获取数据并用字符串形式返回结果。

  1. 对应的model:
    public class Message {	private  Long id;	private  Date time;	private  String msg;	private Student student;   //..get and set 方法省略}
    //对应的xml
  2. dao层:
    //获取前几条旧的聊天记录,是按id排列的 public List
    getFrontNum(int number) { List
    messages = (List
    ) this.getHt().find("From Message m ").subList(0, number+1); return messages; }
  3. sevice层:
    //并发问题,两个同时插入	public boolean checkNumAndDel() {				int number = this.getAll().size();		if(number >= 10){			//获取超过9条的旧记录,删除超过的旧记录            number = number - 10;			List
    ms = this.messageDao.getFrontNum(number); for(int i=0;i< ms.size();i++) { this.delete(ms.get(i).getId()); } } number = this.getAll().size(); return (number < 10); }
  4. action层:
    //timestamp=0第一次获取聊天记录,不等于0,不断更新聊天内容
    public String saveUI()	{		if(this.timestamp == 0){						List
    messages = this.messageService.getAll(); ActionContext.getContext().put("messages", messages); return "saveUI"; }else{ List
    messages = this.messageService.getAll(); for(int i =0 ;i

客户端的处理

  1. 提交聊天记录,然后服务器端保存数据,并返回聊天记录,呈现在页面上:HtMl代码:

    ${student.name }:${msg }------${time }
    最近没聊啥!你起个头吧!
    加载中...

    内容
    //根据/分割Message
    ms = message.substring(0,message.length).split("/"); for(var i=0;i<ms.length;i++) { var m = ms[i].split(","); htmlcode="<strong>"+m[0]+"</strong>:"+m[1]+"---"+m[2]+"<br/>"; } $("#messagewindow").append(htmlcode); } </script>
  2. 浏览器每隔一段时间更新数据(上面javascript的updateMsg函数)

转载于:https://my.oschina.net/u/566829/blog/100366

你可能感兴趣的文章
java斜体_Java可以指示字体是否为斜体字
查看>>
java共享锁和排他锁的区别_漫话:如何给女朋友解释什么是共享锁和排他锁
查看>>
java 面向对象 博客_JAVA面向对象基础
查看>>
java爬取网易云歌单_GitHub - th720309/163music_spider: 网易云音乐歌单爬取
查看>>
java 非静态方法优势_Java 静态(static)与非静态语句执行顺序
查看>>
java中怎么导入子类中数据_导入所有子类,如Java但在C#中
查看>>
蓝桥杯大赛java组准备_蓝桥杯大赛java组算法类冲刺第一天
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
java的maxrow_聊聊pg jdbc statement的maxRows参数
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>
dz.27z.co index.php,dz7.2 伪静态规则
查看>>
php字符串解析xml文件,PHP通过DOM解析XML文件或者xml字符串_PHP教程
查看>>
matlab corr2原码,Ncorr-二维数字图像校正软件
查看>>
mysql增量,MySQL完全、增量的备份与恢复
查看>>
matlab程序复制出现乱码,matlab代码或中文复制到word就变成乱码怎么办?
查看>>
java writer append,Java StringWriter append()方法
查看>>
动态矩阵 matlab代码,动态矩阵控制
查看>>