这是自己最近在自学servlet的时候自己写的一个小系统,BUG很多,仅作学习使用。刚学java的web的朋友可以参考一下。
测试地址:火影聊天室
具体的程序打包文件见百度云:
2015/8/22 chatroom.zip
数据库:
数据库在之后有过一点小更改,具体的请参考entity下的实体类。
用户信息表 user_info
用户id user_id
登录账号 user_name
用户昵称 nick_name
用户真实姓名 real_name
用户性别 user_sex
年龄 user_age
注册时间 create_time
更新信息时间 update_time
当前状态 status
use mysql_888;
select * from user_info where user_name='abc';
delete from user_info;
delete from message;
delete from friend;
create table user_info(
user_id int(8) auto_increment primary key,
user_name varchar(30) not null unique,
nick_name varchar(30) not null unique,
real_name varchar(30) default '',
user_sex char(1) not null default "F",
user_age int(3) default 20,
create_time timestamp NOT NULL default CURRENT_TIMESTAMP,
update_time timestamp NOT NULL default CURRENT_TIMESTAMP,
status char(1) default 'A'
);
select m.send_time,u.nick_name,m.message_text from message m,user_info u where m.send_user_id=4 and m.send_user_id=u.user_id and m.send_time between '2015-08-06 00:00:00' and '2015-08-06 23:59:59' and m.message_text like '%%';
聊天记录表 messge
发送用户id send_user_id
接受用户id rece_user_id
信息内容 message_text
发送时间 send_time
状态 message_status
create table message(
send_user_id int(8) primary key,
rece_user_id int(8) not null,
message_text text,
send_time timestamp NOT NULL default CURRENT_TIMESTAMP,
message_status char(1)
);
背景音乐表 music_picture
id mp_id
名称 mp_name
所在主机目录 mp_pwd
类型 mp_kind
加入时间 join_date
标签 mark
当前状态 mp_status
create table music_picture(
id int(8) auto_increment primary key,
mp_name varchar(30),
mp_pwd varchar(80),
mp_kind char(1),
join_date timestamp NOT NULL default CURRENT_TIMESTAMP,
mark varchar(100),
mp_status char(1)
);
select f.* from friend f,user_info u where f.friend_id=u.user_id and f.user_id=1;
select u.nick_name from friend f,user_info u where f.friend_id=u.user_id and f.user_id='1';
select * from friend;
insert into friend values(1,2,null,1,1,'A');
insert into friend values(1,4,null,1,1,'A');
alter table friend add(id int(8) auto_increment primary key);
alter table friend modify user_id int(8);
alter table friend modify primary key(user_id,friend_id);
delete from friend;
好友表 friend
主用户id user_id
好友id friend_id
成为好友的时间 first_time
聊天的记录数 chat_time
好友等级 firend_lv
当前状态 status
select * from friend;
drop table friend;
create table friend(
user_id int(8) not null,
friend_id int(8) not null,
first_time timestamp NOT NULL default CURRENT_TIMESTAMP,
chat_time int(10),
firend_lv char(1),
status char(1),
primary key(user_id,friend_id)
);
随时更新最新的改动。希望自学java的朋友可以共同交流。
=========================================================================================================
2015.8.11 V1.0
完成整体基础代码编写。
主要模块:登录、注册、聊天、在线会员、修改个人信息、聊天记录。
先采用最简单的jdbc+servlet编写,后期改用spring+struts2+mybatis架构。
==============================================================================================================
2015.8.13 V1.1
增加历史信息查询
增加历史信息条件查询 发送者id 发送开始时间 发送结束时间 关键字
增加登录页面、注册页面、个人信息更改页面对数据的异步验证 AJAX技术
===========================================================================================================
===========================================================================================================
2015.8.14 V1.2
增加定时刷新聊天框 AJAX局部刷新
存在问题 :美化聊天框。
美化聊天框:每3秒自动刷新一次,不会显示不同的聊天框。
本来想添加一个判断,没有新消息的时候不刷新聊天框,通过对比session里的message_id和最新的message_id来对比判断有没有新的聊天记录产生,
有的话就取最新产生的那几条附加到聊天框,但是由于我的聊天框是textarea,这个功能无法实现。
2015.8.15 V1.3
解决聊天框显示聊天记录是倒序的问题。
2015.8.16
增加其他会员信息的查看页面。
增加在线/离线会员的展示页面。