当前课程知识点:软件开发实训--动态网站开发 >  9 后台主界面实现 >  9.1登录逻辑实现 >  9.1.1登录逻辑实现

返回《软件开发实训--动态网站开发》慕课在线视频课程列表

9.1.1登录逻辑实现在线视频

下一节:9.2.1登录界面及流程调试

返回《软件开发实训--动态网站开发》慕课在线视频列表

9.1.1登录逻辑实现课程教案、知识点、字幕

同学你好

欢迎回到软件开发实训课堂

前面我们把用户管理的整个操作

都已经实现完成了

也知道了枚举数据以及

日期数据的处理方式

那么这节课我们就来看一下

登录如何实现

为了实现登陆

我们专门增加一个登陆的控制器

首先在控制器包上点击右键

选择新建里边的JAVA类

输入LoginController

然后加上注解Contrlooer

现在我们来看一下登录该怎么实现

通常情况下

用户输入账号和密码

并提交

这个时候控制器获得账号密码

去数据库中比对

查找对应的用户信息

如果没有找到

那就提示错误

如果找到了

那就让他登陆成功

并转向到我们的主界面

如果用户正确

转向主界面

否则回到登录界面

并提示错误

这是一般情况下登陆的一个简单的流程

那么为了实现这个流程

我们需要做几件事

第一个我们定义一个

JavaBean

UserLogin

用来存储登录时的用户名和密码

我们不使用实体类User

专门做一个JavaBean来提交相关数据

这样我们可以把登录的数据验证

与实体的数据验证分开

分开实体

User的验证和登陆验证

把他俩分开

第二个

登录只输入了账号

我们在定义User实体的时候

账号是唯一性的信息

也就是说它不重复

所以我们可以去实现一个通过账号

来查找用户的方法

所以在DAO中

添加通过账号

查询用户信息的方法

既然在DAO里添加了

那么servce也要添加

那么我们不再去新建DAO和service了

直接使用用户的DAO和service就可以了

现在我们首先来看DAO的实现

我们打开User的DAO接口

gpa里边仅仅是接口实现

没有类

在接口中

根据gpa它的规则

StringGPA的规则

它的方法通过名称来告诉查询

通过什么样的字段来查询数据

好我们这里就返回Optional

user

这是返回一个用户对象

然后findBy

这是他方法的前缀

然后用上字段

也就是我们实体类里边的成员变量

Account

把Account传给他

这样String

它在解析的时候就会把它解析为一个查询

语句

这里我们单独的只是对账号进行操作

如果说你的账号包括了账号姓名

EMAIL地址以及手机号

这都可以作为登录账号的话

那么你要记住

让他们首先是要在数据库中唯一

第二个你可以怎么样

自定义一个查询方法

就像上面这个findByKeyword一样

把他的信息一个一个的检索出来

这是你通过多个字段作为账号时

但是查询时不要使用like

而是使用精准查询

用等号去比较

这个要注意

我们来

在这里加一个注释

通过账号查询用户信息

这获取到的唯一的用户

获取到一定是唯一的

因为我们的account

在数据库里他是唯一存在

DAO\

我们就做好了

现在我们打开service

在service中我们定义一个检测方法

checkuser

检测用户时

我们用一个userlogin

这样的JavaBean对象

它里面包括了

用户名账号和密码这两个数据

这里边因为我们还没有userlogin这个数据

所以它出现了错误

我们来新建一个JavaBean

名字就叫做userlogin

在这里我们给它增加一个账号以及密码

给他增加setter的方法

这样他能够接受表单的数据

然后注解他

不能为空

你也可以增加其他的

比如说我们对他的要求

Size

最小要等于6

也就是说账号的最小长度是六

密码也一样

我们也可以给它加上

如果不满足这个要求

它就会出错

这是我们对基本的

账号和信息的一个限制

现在我们在service

把我们新定义的userlogin类

导入进来

就可以了

下一步咱们就来实现

userservice

在类里边

我们实现他没有实现的抽象方法

checkUser

只要我们点击它的红线

前面的小灯泡就可以帮你去生成这个方法

而不需要你去输入

这就是使用工具的好处

当我们传进来userlogin的时候

我们首先

去调用我们的DAO对象

然后findByAccount

通过账号查找

user点

getAccount

这样我们会得到一个注意是用户对象

这个时候得到是用户对象

那么我们还得要做一个判断

说如果

这里我们先把它拿到Opational User

先把它拿到

然后oo是no

他提供了一个方法

它可以判断我这个

对象是否被查找出来并存在了

注意它的拼写

然后去判断它是否有这个对象

isPresent

如果有

我们就来判断

u等于OU点get

获得这个对象

u点getPassword equals

看看他从数据库里得到的密码

与我们传进来的密码是否一致

如果一致

那就说明他是正确的用户

其他一切的都返回false

这是我们用来检测

登录用户是否合法用户的方法

这个参数User是登录用户账号和密码

最后返回

如果用户合法返回true

否则返回false这是它的一个规则

那么这里首先去数据库中查找用户信息

通过谁来查找呢

通过账号查找

查找出来后我们去比对

把库中的密码与登录时密码

比对

是否一致

一致就返回

说明他是合法用户

数据一致

为合法用户

返回真

其他一切情况返回false

这是对你登陆进来的账号信息进行判断

而isPresent的方法

是判断Optional中是否包含目标对象

如果不包含

那么它返回的是false

很显然它也是false返回

这样我们就把用户身份检测的方法做好了

现在回到我们的控制器

注意是loginController

loginController

我们增加getMapping

通过get请求

login

通常情况下get请求仅仅只是为了显示

登录表单

get请求

返回登录表单

然后我们执行post请求

post请求

不再是get了pose的请求

说明他是在什么提交表单

提交表单时我们得到一个userlogin

对象

但是我们需要对它进行验证

确保它不为空

最小长度为六

这里边通过BingdingResult

来得到验证中发生的错误

我们多了一个g

把user login

对象传进来后

我们就可以去调用我们的service了

service的使用

我们通过spring自动来注入

导入我们需要的注解

和以userservice对象

好我们来看一下

有了这个对象后

我们就可以service点check

来调用我们的方法

check user就是我们刚才定义

好的检查用户身份的方法

检查用户身份的方法

那么实际上我们在检查用户身份方法之前

还应该做一件事

那就是什么呢

看看它验证是否通过

如果result

他的身份有问题

提交的信息就不正确

是有错的

那么我们就可以直接为director

返回我们的登录页面

如果说他没有错误

说明他提交的信息首先是符合了

我们用户名和密码的规范

这样我们检测他

如果返回的是真

说明它是合法的用户

合法用户

我们就把用户信息给他保存起来

这里面我们通过session来进行保存

那么session既然我要用到它怎么来获取

注意对于spring来讲

我们可以让它注入对象

在方法上只要加一个参数就可以了

那么我们要查找的

user这个对象怎么来呢

这样我们去数据库里边就可以去检索它

这是其一

第二种方法

修改

checkuser返回

用户对象

那么如果我们去数据库再查一遍

其实完全就属于多余了

这个时候我们可以去怎么样改变我们的

checkuser方法

让他返回我们的需要的用户对象

最后我们

如果成功

就进入到index页面

当然这个页面还不存在

这是管理主业主界面

这是网站管理的主界面

index

现在对于这个方法

我们首先进入到

userspace

让他直接返回我们的user对象

这里要注意修改方法

一定要先去修改文档

你的设计文档修改后再回过来

去修改这个方法

然后我们来修改实现

在这里直接返回

我们需要的u对象就可以了

如果身份不正确

我们直接返回null就行

返回用户

对象

返回空对象

这样表示用户就没有了

这是为了不再去做查询

当然你要是说我还想做查询

没有必要你可以去重新去定义它

不等于unll

只要它不等于空

把它取出来

放到外面去执行

这样看起来也更方便一些

判断用户是否存在

如果存在

把它放入绘画对象

这样你在其它位置就可以准确的得到

用户的信息了

也就是说登录成功了

否则又回到登录页面

回到登录页面的时候

你可以告诉他

一些信息

比如说用户名

不正确等等

这里可以加一个错误消息

fail

提示一下

那么这里的model怎么来一样的通过我们的

参数

让String帮我们注入进来

可以了

这样我们就能够去界面上去显示

当然如果说正确

我们不需要显示任何信息

直接就去到主界面就可以了

这就是有关登录的控制器

以及数据访问和服务的实现

关于登录的接口实现就讲到这里

我们下节课再见

软件开发实训--动态网站开发课程列表:

1 前端需求分析

-1.1课程介绍

--1.1.1课程介绍

--1.1.2课程介绍PPT

--1.1.3随堂测试

-1.2网站需求分析

--1.2.2网站需求分析

--1.2.3需求PPT

--1.2.4随堂测试

-1.3网站首页分析

--1.3.1网站首页分析

--1.3.2首页分析PPT

--1.3.3随堂测试

-1.4导航菜单分析

--1.4.1导航菜单分析

--1.4.2课程PPT

--1.4.3随堂测试

-1.5内容区域分析

--1.5.1内容区域分析

--1.5.2课程PPT

--1.5.3随堂测试

-1.6内容副页面分析

--1.6.1副页面分析

--1.6.2课程PPT

--1.6.3软件系统需求分析

-1.7编写需求文档

-1.8需求分析理解

2 后端分析

-2.1后端页面总体分析

--2.1.1后端页面总体设计

--2.1.2课程PPT

--2.1.3随堂测试

-2.2用户管理功能设计

--2.2.1用户管理功能分析

--2.2.2课程PPT

--2.2.3随堂测试

-2.3内容与分类功能分析

--2.3.1内容与分类功能分析

--2.3.2课程PPT

--2.3.3随堂测试

-2.4网站配置功能设计

--2.4.1网站配置功能设计

--2.4.2课程PPT

--2.4.3软件系统设计

--2.4.4随堂测试

-2.5数据库及表结构分析

--2.5.1数据库及表结构分析

--2.5.2课程PPT

--2.5.3数据库设计

-总体设计文档

3 接口设计

-3.1前台模板约定

--3.1.1前台模板约定

--3.1.2课程PPT

--3.1.3随堂测试

-3.2网站配置接口设计

--3.2.1网站配置接口设计

--3.2.2课程PPT

--3.2.3随堂测试

-3.3菜单接口设计

--3.3.1菜单接口设计

--3.3.2课程PPT

--3.3.3随堂测试

-3.4内容接口设计

--3.4.1内容接口设计

--3.4.2课程PPT

--3.4.3随堂测试

-3.5幻灯片接口设计

--3.5.1幻灯片接口设计

--3.5.2课程PPT

--3.5.3随堂测试

-补充设计文档

-3.7接口设计

4 功能设计

-4.1用户管理功能设计

--4.1.1用户管理功能设计

--4.1.2课程PPT

--4.1.3随堂测试

-4.2菜单管理功能设计

--4.2.1菜单管理功能设计

--4.2.2课程PPT

--4.2.3随堂测试

-4.3内容管理功能设计

--4.3.1内容管理功能设计

--4.3.2课程PPT

--4.3.3随堂测试

-4.4网站配置信息设计

--4.4.1网站配置信息设计

--4.4.2课程PPT

--4.4.3随堂测试

-完成设计文档

-4.6随堂测试

5 环境搭建与开发

-5.1开发环境搭建

--5.1.1环境搭建

--5.1.2随堂测试

-5.2Web前端环境搭建

--5.2.1Web前端环境

-5.3创建用户实体

--5.3.1用户实体创建

--5.3.2随堂测试

-5.4用户实体表创建与初始化

--5.4.1用户实体表创建与初始化

--5.4.2随堂测试

-5.5用户数据访问接口实现

--5.5.1用户数据访问接口实现

--5.5.2随堂测试

-5.6环境搭建问题

-5.7环境搭建问题

6 用户管理功能实现

-6.1用户服务层接口实现

--6.1.1用户服务层接口实现

--6.1.2随堂测试

-6.2用户列表和编辑控制器实现

--6.2.1用户列表和编辑控制器实现

--6.2.2随堂测试

-6.3用户存储和删除控制器实现

--6.3.1用户存储和删除控制器实现

-6.4用户添加、编辑界面实现

--6.4.1用户添加、编辑界面实现

-6.5用户管理添加用户调试

--6.5.1用户管理添加用户调试

-6.6开发

7 用户管理功能实现二

-7.1用户查询模板实现

--7.1.1用户查询模板实现

--7.1.2随堂测试

-7.2用户信息编辑的实现

--7.2.1用户信息编辑的实现

-7.3单个用户删除实现

--7.3.2单个用户删除实现

-7.4多个用户删除实现

--7.4.1多个用户删除实现

8 用户管理功能实现三

-8.1用户列表分页基本实现

--8.1.1用户列表分页基本实现

-8.2用户列表查询结果分页实现

--8.2.1用户列表查询结果分页实现

-8.3通用日期处理

--8.3.1通用日期处理

-8.4整型日期处理

--8.4.1整型日期处理

--8.4.2随堂测试

-8.5枚举数据的应用

--8.5.1枚举数据的应用

--8.5.2Spring Boot开发

9 后台主界面实现

-9.1登录逻辑实现

--9.1.1登录逻辑实现

--9.1.2随堂测试

-9.2登录界面及流程调试

--9.2.1登录界面及流程调试

--9.2.2随堂测试

-9.3管理主界面实现

--9.3.1管理主界面实现

--9.3.2随堂测试

-9.4授权验证拦截器实现

--9.4.1授权验证拦截器实现

--9.4.2随堂测试

-9.5拦截器调试

--9.5.1拦截器调试

10 分类管理实现

-10.1分类接口实现

--10.1.1分类接口实现

-10.2分类添加、编辑实现

--10.2.1分类添加、编辑实现

-10.3分类树结构实现

--10.3.1分类树结构实现

-10.4分类删除实现

--10.4.1分类删除实现

--10.4.2随堂测试

11 内容管理实现

-11.1内容实体定义

--11.1.1内容实体定义

-11.2相关接口定义

--11.2.1相关接口定义

-11.3服务接口实现

--11.3.1服务接口实现

-11.4内容添加、编辑模板实现

--11.4.1内容添加、编辑模板实现

-11.5内容添加、编辑控制器实现

--11.5.1内容添加、编辑控制器实现

-11.6内容检索页面实现

--11.6.1内容检索页面实现

-11.7内容分类树实现

--11.7.1内容分类树实现

12 UEditor富文本编辑器

-12.1修改UEditor相关问题

--12.1.1修改UEditor相关问题

-12.2整合UEditor到内容编辑界面

--12.2.1整合UEditor到内容编辑界面

-12.3UEditor图片对话框应用

--12.3.1UEditor图片对话框应用

-12.4文件上传问题处理

--12.4.1文件上传问题处理

13 网站配置管理实现

-13.1网站配置相关类实现

--13.1.1网站配置相关类实现

-13.2网站配置界面模板实现

--13.2.1网站配置界面模板实现

-13.3网站配置调试

--13.3.1网站配置调试

14 网站前端组件实现

-14.1网站首页布局实现

--14.1.1网站首页布局实现

-14.2菜单Vue组件实现

--14.2.1菜单Vue组件实现

--14.2.2随堂测试

-14.3幻灯片Vue组件实现

--14.3.1幻灯片Vue组件实现

-14.4滚动Vue组件实现

--14.4.1滚动Vue组件实现

--14.4.2随堂测试

-14.5滚动接口实现

--14.5.1滚动接口实现

-14.6滚动接口调试

--14.6.1滚动接口调试

-14.7幻灯片接口实现

--14.7.1幻灯片接口实现

15 网站前端页面实现

-15.1首页区域实现

--15.1.1首页区域实现

-15.2首页内容脚本实现

--15.2.1首页内容脚本实现

-15.3首页完善

--15.3.1首页完善

-15.4Vue组件放入单文件

--15.4.1Vue组件放入单文件

-15.5详细页面实现

--15.5.1详细页面实现

-15.6前端问题

16 测试与发布

-16.1网站测试介绍

--16.1.1网站测试介绍

--16.1.2课程PPT

-16.2功能测试

--16.2.1功能测试

--16.2.2课程PPT

-16.3打包发布

--16.3.1打包发布

-16.4部署运行

--16.4.1部署运行

--16.4.2随堂测试

9.1.1登录逻辑实现笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。