6.28达内知道第二天

推理动漫时间:2024-04-19 10:09:22点击:6

续安全框架查询用户权限

根据当前登录用户的id查询该用户的所有权限的操作的sql语句

鼠标右键选中运行

五表联查
因为这个查询成果可以赋给.list集合

要实现用户登录,
需要:根据用户名获得用户信息和上面的根据用户id获得用户所有权限的方法

在中添加代码

编写测试类测试一下上面的方法

实现登录业务

又返回给
-接收到之后,
和输入的密码比对匹配(输入的密码是明文的,数据库里查的是加密的)
匹配成功,登录成功;匹配失败,登录失败

这个过程全都被封装在-内部了,咱不用管,只用点个signin

设置-授权范围

所谓节制授权范围
就是节制当前网站哪些页面资源可以直接访问,哪些需要登录才能访问

假设我们设置网站首页.html页面不需要登录就能直接访问
需要进行如下设置
在类中,重写另一个方法,设置授权范围

设置上面代码之后
重启项目,不登录也能访问学生首页

之前是需要登录,登录成功后才能访问,现在直接敲回车就能访问

自定义登录页面

当前我们项目的登录页面

对比:
-给的默认登录页面,功能太少了,用户体验很差

下面学习怎么把自己的.html页面替换为默认的登录页面

先来看一下当前我们项目的登录页面代码,不修改这里的代码

需要注意这几点:

表单提交的路径是/,配置时那里也是/用户名是,这个名称是和-约定好的,不能变密码是,这个名称是和-约定好的,不能变

然后我们开始配置,还是在(http)方法中

重启项目:

访问必须登录的页面


登录失败
登出

用户注册

开辟业务流程:

从节制器()调业务逻辑层(),业务逻辑层调数据访问层()。

前面的vrd项目没有业务逻辑层(),直接调,这个做法在企业中是不允许的,不能跳层

接下来业务逻辑层怎么做,前端VUE的绑定,从用户注册开始学第一个业务;

前面的登录受到框架的约束,很多东西都是固定的

看一下注册页面代码,不修改这里的代码

注意这几点:

一个表单提交,要在节制器()接收,怎么接怎么把用户输入的邀请码,用户名,昵称,密码,确认密码(上面name那5个)接收到
写一个实体类

实体类包中的User类,没有邀请码,没有确认密码
所以针对这5个,创建一个类,但这个类不能放在实体类包中,
因为包中都是和数据库一一对应的,包中一个类,代表数据库中一个表,
新建一个类进去,不对应数据库中的任何表

所以/路径实现注册也是需要进行放行的,
添加放行路径
重启服务进行注册,检查节制台是否能输出用户在注册页面填写的信息
如果能够输出表示一切正常

从数据库中复制一个邀请码
手机号内部有验证,所以格式要正确


以上证明了用户输入的表单信息从页面发送到节制器了,节制器()接收到了,

下面做业务逻辑层代码

中间穿插一个小知识,连接数据库的查询方式(Plus提供的一个小功能)

利用实现邀请码的验证

学生输入的邀请码需要连接数据库来验证是否正确

之前是接口中写这个@查询方法,然后写SQL语句
现在还提供了此外一种查询方式
这两种方式都可以

我们先在测试类中编写一个示例
创建一个测试类

自定义异常类型

如果注册过程中发生了邀请码不正确或用户名已经被使用的情况,就是业务逻辑层代码中的异常情况,
我们需要使用Java提供的异常处理机制来处理,发生异常的类型是我们自定义的,所以我们需要定义这个业务异常类

把教员发的提供代码粘贴过来,改动删除


异常处理类准备好了,也学习了新的查询数据的方式

下面我们就开始编写注册的业务逻辑代码

编写学生注册的业务逻辑层()

注意:
企业中开辟项目编写业务流程:
最基本的调用格式就是

前端发起请求到节制器()节制器接收信息后调用业务逻辑层()方法业务逻辑层中调用数据访问层()方法,并接收数据访问层的返回值业务逻辑层将接收到的返回值返回给节制层节制层将信息响应给前端

在接口中添加注册学生的方法,代码如下

用void(不用返回值),用异常表示是否出现问题,如果出现问题,就抛异常。用返回值就没有意义了

就是需要注册的用户了,用户信息全在里面
这个参数,是由页面传给,节制层接收并提供给业务逻辑层的;
即页面传给,在节制层中会获得实体对象,然后调用()方法,并把参数传过去

开始编写实现类代码

把光标放在接口名上,Ctrl+Alt+B,就能从接口自动跳转到实现类上
当前实现类报错,Alt+
就会生成一个方法
注册的业务逻辑步骤
数据库那边有下划线,Java这里把下划线去了,把后面变成大写

验证邀请码正确性测试类中写过

推荐内容