续安全框架查询用户权限
根据当前登录用户的 id 查询 该用户的 所有权限 的操作的sql语句
鼠标右键选中 运行
五表联查
因为这个查询结果可以赋给 .list 集合
要实现用户登录,
需要: 根据用户名获得用户信息 和 上面的 根据用户id获得用户所有权限的方法
在中添加代码
编写测试类 测试一下上面的方法
又返回给
- 接收到 之后,
和输入的密码 比对 匹配 (输入的密码是明文的,数据库里查 的是加密的)
匹配成功,登录成功; 匹配失败,登录失败
这个过程全都被封装在 - 内部了,咱不用管,只用点个sign in
设置 - 授权范围所谓控制授权范围
就是控制当前网站哪些页面资源可以直接访问,哪些需要登录才能访问
假设我们设置网站首页 .html 页面 不需要登录 就能直接访问
需要进行如下设置
在 类中,重写另一个方法,设置授权范围
设置上面代码之后
重启项目,不登录也能访问学生首页
之前是需要登录,登录成功后 才能访问,现在 直接敲回车 就能访问
当前我们项目的登录页面
对比:
- 给的默认登录页面,功能太少了,用户体验很差
下面学习 怎么把自己的 .html 页面 替换为默认的登录页面
先来看一下当前我们项目的登录页面代码,不修改这里的代码
需要注意这几点:
表单提交的路径是 /,配置时那里也是 /用户名是 ,这个名称是和-约定好的,不能变密码是 ,这个名称是和-约定好的,不能变然后我们开始配置,还是在 ( http) 方法中
重启项目:
访问必须 登录的页面
登录失败
登出
开发业务流程:
从控制器() 调 业务逻辑层(),业务逻辑层 调 数据访问层()。
前面的 vrd 项目没有业务逻辑层(),直接 调,这个做法在企业中是不允许的,不能跳层
接下来 业务逻辑层 怎么做,前端 VUE的绑定,从 用户注册 开始学第一个业务;
前面的 登录 受到框架的约束,很多东西都是固定的
看一下注册页面 代码,不修改这里的代码
注意这 几 点:
一个 表单提交,要在控制器()接收,怎么接? 怎么把用户输入的邀请码,用户名,昵称,密码,确认密码(上面name 那5个) 接收到 ?
写一个实体类
实体类包 中的 User类,没有邀请码,没有 确认密码
所以 针对这 5个,创建一个类,但这个类不能放在 实体类包 中,
因为 包中都是和数据库一 一对应的, 包中一个类,代表数据库中一个表,
新建一个类进去,不对应数据库中的任何表
所以 / 路径 实现注册 也是需要进行放行的,
添加放行路径
重启服务进行注册,检查控制台是否能 输出用户在注册页面填写的信息
如果能够输出表示一切正常
从数据库中 复制一个邀请码
手机号内部有验证,所以格式要正确
以上 证明了 用户输入的表单信息 从页面发送 到控制器了,控制器()接收到了,
下面做 业务逻辑层 代码
中间穿插一个小知识,连接数据库的查询方式( Plus 提供的一个小功能)
利用实现邀请码的验证学生输入的邀请码 需要 连接数据库 来验证是否正确
之前 是 接口中写这个 @ 查询方法,然后写SQL 语句
现在 还提供了另外一种查询方式
这两种方式都可以
我们先在 测试类 中编写一个示例
创建一个测试类
如果 注册 过程中发生了 邀请码不正确 或 用户名已经被使用 的情况,就是业务逻辑层代码中的异常情况,
我们需要使用Java提供的异常处理机制来处理,发生异常的类型是我们自定义的,所以我们需要定义这个业务异常类
把老师发的 提供代码 粘贴过来,改动 删除
异常处理类准备好了,也学习了新的查询数据的方式
下面我们就开始编写注册的业务逻辑代码
编写学生注册的 业务逻辑层()注意:
企业中开发项目编写业务流程:
最基本的调用格式就是
在 接口中 添加 注册学生 的方法,代码如下
用 void (不用返回值 ),用 异常 表示是否出现问题,如果 出现问题,就抛异常。用返回值就没有意义了
就是需要注册的用户了,用户信息全在里面
这个参数,是由 页面传给 ,控制层 接收 并提供给业务逻辑层的;
即 页面传给 , 在控制层中会获得 实体对象, 然后调用 () 方法,并把参数传过去
开始编写 实现类 代码
把 光标 放在接口名上,Ctrl + Alt + B ,就能 从接口 自动跳转到 实现类 上
当前 实现类报错, Alt +
就会 生成一个方法
注册的 业务逻辑步骤
数据库那边有下划线,Java 这里把下划线去了,把后面变成大写
验证邀请码正确性 测试类 中写过