JQuery是一款非常强大的javascript插件,本文就针对Ajax前台和JSP后台来实现一个无刷新的多人在线聊天室,该实现的数据全部存储在服务端内存里,没有用到数据库,本文会提供所有源程序,需要持久化聊天数据的可以自行修改增加XML文件数据保存或者数据库数据保存。

主界面:



使用说明:
1. 聊天室的登录验证规则为:任意用户名,只验证密码(默认为123456),简单起见,密码直接硬编码在JavaBean中,可自行修改。
2. 需要下线请点击下线按钮,以便服务器及时得到用户下线并通过在线人员列表反馈给其他在线用户。

基于JQuery+JSP的无数据库无刷新多人在线聊天室源代码下载(MyEclipse开发环境下导出的项目包)

下面简要分析一下各个功能的实现:

服务端:

采用JSP+JavaBean结合的方式,本来是想让代码从功能性上看起来比较清晰,后来实现的时候发现好像没有预期的清晰感- -!

JSP用来接收从客户端传来的各种Ajax请求并且反馈信息给客户端,所有的请求处理都封装在了JavaBean中。个人认为这个聊天室服务端实现最大的亮点是:充分利用了request, session. application这三大内置对象的特性,可以加深对这三个对象类型以及作用域的理解。

Request对象用来获取客户端传递过来的参数,对不同客户端有不同的request对象,session用来保存当前登录的用户名,同样是只对当前登录用户有效,最后application大显神威,保存着两个至关重要的数据对象,一个是当前所有的在线人员列表,一个是所有的聊天内容,每当有新用户登录的时候,用户名称便会记录到application中,每当有人发言的时候,聊天信息也会保存到application中,而application对象对于所有用户都是同一个实例,所以通过application可以实现共享聊天信息和聊天人员列表数据的功能,并且application中的内容都是保存在服务端的内存中,当Tomcat关闭的时候便随之清空了,如果对于聊天信息没有保存的需要,仅仅是需要一个临时的多人在线交流平台,这种设计非常简洁且合适。

项目文件结构:




服务端的源代码

DealData.jsp
Java代码

更多相关文章

  1. jquery解析php通过ajax传过来的json二维数组对象
  2. JQUERY组装对象并调用自身函数改变自己的属性
  3. 如何从input type = file中删除一个对象?
  4. Angular2-对象作为无线电输入值
  5. 在不可见的webbrowser对象中模拟按键C#
  6. golang写服务端程序,作为文件上传与下载的服务器。配合HTML5以网
  7. 关于 jq/js获取几层/多层frame/frameset的对象,怎么获取
  8. 请问json文件在html head中以script的形式导入了,怎样读取这个jso
  9. 传入连接对象或在类中创建它? (OOP)

随机推荐

  1. Sql server创建存储过程
  2. 利用纯真IP库建立mysql ip数据库
  3. SQL根据某个字段分组查询:
  4. 特殊符号对应的ASCII码
  5. java.util.Date与java.sql.Date
  6. java之生成可重复执行的sql脚本
  7. Mysql-5.7 x64安装
  8. sqlite3使用教程1 SQLite 命令
  9. Linux系统下安装MySql 5.7.17 全过程
  10. SQL Sever数据库卡事务