模块设计:
本程序由三大模块组成:用户管理模块,短信息管理模块和聊天控制模块。
用户管理模块实现用户的注册、登陆和注销(不礼貌的关闭浏览器并不在此模块内实现)以及管理员对用户的管理。
短信息模块实现短信息的收发和管理。
聊天控制模块是本程序的核心,具体实现基于WEB的及时聊天功能。
数据库设计:
本程序的数据库用MySQL实现,作为一款能在线维护的数据库,使用MySQL能给开发节省一大批不必要的开销。
本程序数据库由以下三个表构成message,user,block;其中,message主要是为短信息模块服务的,而user中保存了所有已注册用户的信息,block保存着被禁止发言用户的信息。数据库结构如下:
message表

id是系统自动生成的短消息唯一标识。
from是发新的用户名,对应着user表中username。
to一样对应着user表中username,是收信人的username。
sendtime是信息发送的时间,本程序中的所有时间都以数据库时间为准)
isnew表示信息是否被读过。
content保存信息内容
title保存信息标题
user表

id时系统自动生成用户标识
username是用户的注册名,建议用中文
password是用户密码
grade是用户等级,默认为0,管理员是1
totalmessage是用户的信息总数
newmessage是新信息数
lasttime是用户最后登陆的时间
block表

username是被禁止发言的用户名
freetime是用户被禁的中结时间
JAVABean设计:
本程序中有JAVABEAN实现了所有关于数据库和短消息的操作,具体有数据库方面:用户注册,用户登录,修改密码。短消息方面,收短消息,发短消息,删除短消息。管理员管理方面:禁止用户发言,删除用户。这些方法保存在文件conn.class(conn.java),msg.class(msg.java),manager.class(manager.java)中。
文件列表:
Chatroom目录下:about.htm(本文档的htm格式),enter.htm(默认打开页面), index.htm(程序的主页面,框架组成),chat.css(样式表文件),Commom.jsp(包含字符编码、一些参数设置和一些针对Servelcontext的函数),fresh.jsp(处理客户端的刷新请求,以javaScript的形式返回自上次刷新后的新增聊天信息),list.jsp (里出在线成员的信息),send.jsp(处理客户端和服务器端添加聊天信息的功能),welcome.jsp(显示欢迎信息和已登录成员的可操作条目)
member目录下:login.jsp(处理登陆),logout.jsp(处理注销),modify.jsp(处理修改密码),reg.jsp(新成员注册),manager.jsp(管理员管理页面),delete.jsp(处理删除用户的代码),forbid.jsp(禁止用户发言的代码)。
message目录下:delete.jsp(删除短信息),message.jsp(短信息列表),write.jsp(写短信息)
另外JavaBean文件:chatweb.conn;chatweb.msg;chatweb.manager
使用说明
任何用户只要登陆就可以开始使用本聊天时程序,系统会自动初始化变量。
Commom.jsp里面有两个参数maxMessage和lessMessage,分别对应服务器端保存的聊天信息的数目,该大小可根据聊天的人气随时修改。
试验总结
本程序有以下特色:
1 用servletContext实现服务器端临时共享变量,他不止和Application一样可在多用户间共享数据,而且还能在不需要的时候清除,用它来监控用户的在线状态,既节省资源又不用考虑服务器的兼容性。
2 javaScript在客户端的大量运用不仅使本程序实现了无闪烁更新,更加入了很多人性化的设计,如自动对焦,保存个性化设置等等。
3 由于是第一次写这样完整的JSP,刚开始的时侯摆脱不了ASP的习惯,Commom.jsp就是直接产物,所以有些代码尚可优化