基于Javaee的通讯录系统
为什么会有这个项目?
要求
还不是因为老师的作业!!!!!!!!
系统介绍:
- 功能描述
通讯录模块主要用于允许用户按类别管理自己的通讯录信息。根据该功能可以将通讯录模块分为用户操作和联系人管理两个部分,具体的功能结构图如下图所示:
- 系统流程
用户访问登录页面,若该用户没注册,则先注册,否则输入用户名和密码登录系统主页;在进入系统主页后,用户可以对自己的联系人信息进行管理。
- 关键技术
核心技术:JSP+Servlet+JavaBean,其中,Servlet充当控制器,用于实现业务逻辑;JavaBean充当模型层;JSP充当表示层,即视图,用于获取或显示数据。具体要求如下:
- 数据库至少包括三张表:联系人分类表、联系人表及用户表;
- JSP页面:
a. 数据显示结合使用EL表达式和JSTL;
b. 所有JSP页面使用JSP动作标签将页面header.html及footer.html部分包含进来; - JavaBean:
a. 定义三个JavaBean,分别用户封装联系人分类信息、联系人信息及用户信息;
b. 定义三个DAO,分别实现系人分类信息、联系人信息及用户信息的增删改查操作; - Servlet:
用于收集页面数据,调用模型(JavaBean)进行信息处理,选择视图(jsp)显示结果 - 其他要求:
a. 整个项目的页面跳转方式需使用到重定向和请求转发;
b. Session保存登录用户信息,在主页显示;
c. 解决页面中文乱码问题。
说明
这是一个使用了 H-ui 组件库的一个页面,后端使用JavaEE开发,访问数据库使用阿里的 Druid连接池,使用 ThreadLocal 进行统一的事务管理,对于 Servlet控制器,采用一个抽象基础类,在每一次访问的时候都将手动的携带一个 action访问参数,使用 Java反射机制动态调用方法,提高代码复用率。 通讯录系统开发严格遵循 MVC模式。
本系统截止 2020-11-30已经完成了注册、登录、修改密码、新增分组、新增联系人、联系人信息管理、分组管理功能。
待完善功能: 邮箱注册, 使用邮箱找回密码, 搜索功能, 名片生成, 用户信息的更多细节(性别,年龄…), 微信扫码登录, 个人收藏和黑名单
数据库设计
用户表 t_user
字段 | 类型 | 主键 | 是否为空 | 说明 |
---|---|---|---|---|
id | int(11) | true | false | 自增的id值 |
name | varchar(255) | false | false | 用户名称 |
password | varchar(255) | false | false | 用户密码 |
varchar(255) | false | true | 用户邮箱 | |
sex | varchar(1) | false | true | 用户性别 |
联系人表 t_linkman
字段 | 类型 | 主键 | 是否为空 | 说明 |
---|---|---|---|---|
id | int(11) | true | false | 自增id值 |
remark | varchar(255) | false | true | 描述 |
is_black | tinyint(1) | false | false | 是否加入黑名单 |
is_collect | tinyint(1) | false | false | 是否收藏 |
cat_name | varchar(30) | false | false | 该联系人类别名称 |
user_id | int(11) | false | false | 改联系人属于哪个用户 |
name | varchar(20) | false | false | 该联系人的名称 |
号码表 t_phone
字段 | 类型 | 主键 | 是否为空 | 说明 |
---|---|---|---|---|
id | int(11) | true | false | 自增id主键 |
phone | varchar(20) | false | false | 电话号码 |
user_id | varchar(255) | fasle | false | 该号码属于哪一个用户 |
分类表 t_linkman_cat
字段 | 类型 | 主键 | 是否为空 | 说明 |
---|---|---|---|---|
id | int(11) | true | false | 自增主键 |
user_id | int(11) | false | false | 用户id |
cat_name | varchar(30) | false | false | 该分类的名称 |
系统运行界面
登录注册功能
注册页
登录页
- 密码错误页面
登录成功后台
登录成功欢迎页面
左边导航栏中的管理通讯录
修改用户密码
- 修改密码中有原密码的验证以及两次重复密码的验证,有一处错误就不会提交表单
新增联系人
- 一个联系人可以拥有多个手机号码,点击新增按钮,即可新增手机号码。
分组管理
- 对于分组管理,在输入框里面输入内容之后,当文本框失去焦点,或者点击空格或回车,都会将输入的文本内容变成分组,
- 点击提交会提交到后台,再次进入界面,可以发现,左边的导航栏已经发生了变化
- 点击分组的名称,会弹出提示框,提示是否要删除分组,点击确定,再提交更改,即可删除该分组。
- 若该分组含有联系人,那么会自动的将里面的所有联系人自动的归到默认分组里面。
全部联系人
- 不论联系人在哪个分组,都会在这个分组里面。
联系人详细信息
- 点击联系人名称,在右边内容里会显示该联系人的详细信息。
- 右边是一个表单,实时可以对联系人进行更改,修改完信息之后,点击更新信息,即可在数据库更新。
- 在新增号码这一栏里面,如果新增的号码输入框没有数据,那么就不会有一个新的框出现。若将一个号码里面的值全部清楚,并失去焦点,那么这个文本框会自动的消失。
注销功能
- 点击注销之后,会跳转到登录界面
回到欢迎页面