模块设计: 本程序由三大模块组成:用户管理模块,短信息管理模块和聊天控制模块。 用户管理模块实现用户的注册、登陆和注销(不礼貌的关闭浏览器并不在此模块内实现)以及管理员对用户的管理。 短信息模块实现短信息的收发和管理。 聊天控制模块是本程序的核心,具体实现基于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就是直接产物,所以有些代码尚可优化 |