基于servlet+jdbc编写的java版多人聊天室WEB版

这是自己最近在自学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


增加其他会员信息的查看页面。
增加在线/离线会员的展示页面。

你可能感兴趣的:(java编程基础)