从头建立一个SSM项目(二)登录功能详解

289 阅读2分钟

首先,回顾并复习一下项目的分层结构。 一共分为四个层次,分别是domain层,mapper层,service层,以及controller层。

domain层是实体层,存放项目需要实体类型,主要用于对数据进行封装。

mapper层是数据库层,主要存放实体类相应的数据库操作接口,包含了对数据库操作的映射,applicationContext.xml中配置了sqlSession工厂类,以及mybatis的映射扫描,可以把mapper中的接口实现和sql语句映射文件进行绑定,从而实现mapper中接口的方法。

service层是业务层,会引用数据库mapper的一个或多个方法,并对数据库操作的返回值进行业务逻辑的处理。

controller层是控制层,负责请求转发,接收页面的请求,进行处理,将数据交给service层。

项目的开发目录如下图所示,其中controller层主要有两个实现,一个是对登录功能的实现(LoginController.java),第二个是对注册功能的实现(ReaderController.java);domian层包含了各个数据实体,由于登录者可能是管理员和普通用户,因此用Admin存储管理员的登录信息,普通用户的实体类稍稍复杂一些,用ReaderInfo保存用户的基本个人信息,用ReaderCard保存用户的登录信息。

mapper映射层操作也是对应上面三个实体类创建的。

service业务层也对应了三个实体,这里将service用接口和实现进行区分,便于后续的功能扩展。

image.png

接下来解释一下具体的登录功能的具体实现步骤。

1.前端页面通过表单获取数据,用户名和密码,附加实现数据的非空判断

2.前端校验通过后,通过POST请求将数据提交给后台 1645174222(1).png

3.得到前端页面的请求数据后,转到controller层代码 (@RequestMapping+@ResponseBody实现后台跳转以及数据返回前端)

4.controller通过调用service层代码进行业务查询

5.service层调用mapper层的数据sql语句映射

6.拿到数据后,controller进行逻辑判断,将验证结果返回给前端

1645174971(1).png

7.前端进行判断是否登录成功

整体的流程如下图所示:

1645173650(1).png