用户信息列表管理系统(黑马小项目)

一、项目场景:

开发一个简单的用户信息列表管理系统,可用于对用户信息进行增删改查操作。以下展示展示改系统的功能效果图:

(1)服务器启动时,有一管理员登录页面,需要登录成功后才能进入用户信息系统:
管理员登录页面

(2)当登录成功之后就会进入查询用户信息界面(index.js)中

查询用户信息界面

(3)点击“查询所有用户信息”,进入用户信息管理列表,就可以查看用户信息功能了。
用户信息查询列表

(4)在改表中,有以下几个功能:

①可通过条件查询筛选出需要的用户信息
复杂条件查询信息
②可以在该系统中“添加联系人”和“删除选中的联系人”
添加和删除联系人
③可以在该系统中单个修改和删除联系人
修改和删除功能
④分页查询功能,逐页查询系统中的各个信息
在这里插入图片描述


二、项目开发整体框架流程:

以下简单介绍整体的项目开发流程,在公司中我们只需要负责开发流程就可以了。

(1)需求分析:用户信息的增删改查操作。
(2)设计:
   1.技术选型:Servlet + JSP + MySQL + JDBCTemplate + Druid + BeanUtils + tomcat
   2.设计数据库

(3)开发:

   1.环境搭建:
      ①创建数据库环境
      ②导入项目所需的jar包
   2.进行编码
(4) 测试:
   项目开发完成后进行测试和并调整
(5) 部署运维:
   将项目部署在服务器中


三、开发流程:

(一)项目整体架构

整个项目中由“src” 和 “web”两个主要大包组成。
项目整体架构
(1)在src包中,我们根据Java的三层架构模式,将其分成以下各个文件夹保存相应的各个功能文件。
以下为src中各个子包:
src包中的各个子包
以下为Java开发中的三层架构模式:(可以百度查看“Java三层架构”理解其原理
Java三层架构图
以下介绍各个项目中各个包所放的文件的功能:

 ①dao层(MyBatis框架)–>定义了对于数据库最基本的CRUD操作,包含实现增删改查功能的函数,需要输入sql函数对数据库进行访问

 ②domain层–>存放User和PageBean对象,用于对用户信息进行封装

 ③service层(Spring框架)–>调用组合dao层中的简单方法,形成复杂的功能。

 ④util层–>用来存放工具类的包,例如JDBCUtils工具类

 ⑤web层(SpringMVC层)–>里面包含各个功能函数板块的Servlet文件,用于接收用户参数、封装数据、调用service层完成处理后转发到jsp页面完成显示。

 ⑥druid.properties文件,用于链接MySQL数据库

(2)在web包中,用于放置前端UI展示页面和jsp文件
web包中展示的文件
其中web中包含前端UI中所需要用到的css、font、js、jar包和jsp文件,其中WEB-INF用于存放jar包



(二)环境搭建

 (1)创建数据库环境,以下是SQL语句创建数据库:

create database day17; -- 创建数据库
		use day17; 			   -- 使用数据库
		create table user(   -- 创建表
			id int primary key auto_increment,  --用户id
			name varchar(20) not null,			--姓名
			gender varchar(5),					--性别
			age int,							--年龄
			address varchar(32),				--地址
			qq	varchar(20),					--qq
			email varchar(50),					--邮箱地址
			username varchar(32),				--登录用户名
			password varchar(32)				--登陆密码
		);

 (2) 创建项目,导入需要的jar包。(后面会提供源码,在web->WEB-INF->lib包中)
项目开发中所需要的jar包
 (3) 引入JDBCUtils文件和druid.properties文件链接MySQL数据库。



(三)功能开发

(1)登录功能分析

在这里插入图片描述
(1)在login.jsp文件中编写登陆页面,并且将该页面中输入的数据(用户名、密码和验证码)通过form表单提交给服务器web层中的loginServlet中。

<form action="${pageContext.request.contextPath}/loginServlet" method="post">

(2)在loginServlet中
  1.获取login.jsp中传入过来的参数map集合(map中包含用户名和密码)和单独获取输入的验证码值。
  2.将用户信息封装到User对象
  3.判断程序生成的验证码和用户输入的验证码是否一致,
    如果一致:则进一步判断用户名和登录密码是否一致(判断用户登录是否成功参考4)。
    如果不一致:则发送错误信息并转发回登录页面login.jsp中
  4.判断用户是否登录正确:
    如果是:将用户信息存储到session中并且重定向到index.js页面中
    如果不是:则将登录错误信息存储起来并转发回登录页面login.jsp中

下面展示伪代码来说明该登录功能的逻辑

/**
*LoginServlet类
*/

1.获取login.jsp中传输过来的验证码数据

2.获取程序中生成的验证码  //该验证码是通过CheckCodeServlet生成的,并存储在session中

//判断输入的验证码是否和生成的验证码相等,相等的话则继续判断用户名是否正确,否者不想等。
//这里为了简化代码,通过判断验证码错误就进入if条件,并且通过return跳出函数,跳出判断条件后就不执行if后面的东西。如果验证码输入正确则不执行if条件中的东西直接往下执行。
3.
if(程序的验证码 != 输入的验证码){
	
	(1).存储登录的错误信息到request中

	(2).转发回原来的登陆页面login.jsp中继续登录
	
	(3). return;   //执行return后将跳出该函数,不在执行if条件后面的代码
}

4.获取输入的用户名和密码传到map集合中

5.将map集合中的信息封装到JavaBean对象中的user

6.通过调用service层查询用户user是否存在   //service层会调用dao层的函数向数据库进行查询数据

//查询出来后判断
7.if(用户user存在){
	(1).将用户信息存储在session中
	(2).然后重定向到index.js页面中
}else{
	(1).将登录错误信息存储在request中
	(2).转发回登录页面login.jsp中

}



(2)列表查询功能分析

在这里插入图片描述
伪代码分析:

/**
*UserListServlet类
*/
1.通过service层获取用户信息user		//service层通过dao层间接获取数据库信息

2.将用户信息存储到request中

3.将用户信息转发到list.jsp中将页面展示出来

/**
*list.jsp
*/
1.编写foreach标签循环遍历list集合生成数据信息表格



(3)添加功能分析

在这里插入图片描述
伪代码分析:

/**
*编写add.jsp页面,绘制出整个表格
*/
1.编写出简单的添加信息页面
2.设置form表单action的提交路径到AddUserServlet/**
*编写AddUserServlet
*/
1.获取传输的数据,封装为对象
2.通过service层间接调用dao层,将数据添加在数据库中
3.跳转userListServlet层数据进行查询




(4)删除功能分析

在这里插入图片描述
注意点:
(1)删除这里需要将其绑定这条记录的id,获取其删除信息。这个id很重要,需要从list.jsp中获取并传入到DelUserServlet中。



(5)修改功能分析

在这里插入图片描述
伪代码分析:

/**
*该功能需要将其分为两个部分:
*	1.当点击修改时,跳转到update.jsp中,并且需要通过findUserServlet将得到的数据回显在update.jsp页面。
*	2.在update.jsp中修改了该信息后,将数据提交到UpdateUserServlet中,并且将信息存入到数据库中后跳转回userListServlet中展示出来
*/
//第一部分代码实现
1.和删除功能一样,需要在list.jsp中绑定用户id
2.在findUserServlet中获取绑定的id信息,然后通过该id在数据库中查询获取出信息
3.将通过Id获取的用户信息封装起来,转发到update.jsp中回显该信息

//第二部分代码实现
1.从update.jsp中获取提交的表单信息,将其封装为对象
2.通过service层将数据存储到数据库中
3.重定向回到userListServlet中查询对象



(6)删除选中功能分析

在这里插入图片描述
伪代码分析:

/**
*在list.jsp中
*/
1.获取选中的id数组,然后提交到DelSelectedServlet

/**
*在DelSelectedServlet中
*/
1.通过getParameterValue()获取id数组
2.调用userService()进行删除
3.转发到查询所有的UserListServlet

/**
*在userServiceImp中
*/
public void deleteSelectedUser(String[] uids) {

	1.遍历每个uid,然后调用dao层已有的delected()函数进行删除
	for(String id : uid){  // for-each 循环语句遍历数组,不清楚可以百度,其实跟for循环一样的
		dao.delect(Interger.paraseInt(id))
	}


}



(7)分页查询功能分析

在这里插入图片描述
在这里插入图片描述


(8)复杂条件分页功能分析

在这里插入图片描述




四、补充说明:

后面(7)分页查询功能分析和(8)复杂条件分页功能分析功能没有详细分析,该功能比较复杂,等后续有时间再对该博客进行补充。需要的伙伴可以去B站搜索黑马视频进行观看



五、代码仓库:

码云:https://gitee.com/bofuser/user-manage-system.git
GitHub:https://github.com/Bofuser/UserManageSystem.git

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值