目录
1.业务逻辑实现
1.1 登录校验技术——会话
1.1.1Cookie
1.1.2session
1.1.3JWT令牌技术
2.参数配置化
3.yml格式配置文件
4.过滤器Filter
5.拦截器Interceptor
1.业务逻辑实现
Day10-02. 案例-部门管理-查询_哔哩哔哩_bilibili
//Controller层
/**
* 新增部门
*/
@PostMapping("/dept")
public Result add(@RequestBody Dept deot){
//json数据格式想要封装进对象中要加@RequestBody
//调用service实现新增部门业务逻辑
deptService.add(dept);
return Result.success();
}
//Service接口
void add(Dept deot);
//Service接口实现类
public void add(Dept dept) {
dept.setCreateTime(LocalDateTime.now());
dept.setUpdateTime(LocalDateTime.now());
deptMapper.insert(dept);
}
//Mapper持久层
@Insert ("insert into dept (name, create time, update time) values(#{name)," +
"#{createTime),#{updateTime)");
void insert(Dept dept);
PageHelper分页插件P142
但是目前的项目在未登录情况下,也可以直接访问部门管理、员工管理等功能,所以就需要登录校验,如果没登录则直接跳转到登录界面,我们知道http协议是无状态的,也就是本次操作不会携带上一次的操作信心,两次请求之间是独立的,所以无法判断是否登录了,所以为了实现登录校验的功能,就需要一个登录标记
1.1 登录校验技术——会话
会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应
会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据
我们有三种会话跟踪方案:
- 客户端会话跟踪技术:Cookie
- 服务端会话跟踪技术:Session
- 令牌技术
Day12-04. 登录认证-登录校验-会话跟踪方案一_哔哩哔哩_bilibili
1.1.1Cookie
1.1.2session
session底层是基于cookie实现的(所以cookie的缺点它也有)
1.1.3JWT令牌技术
简洁是因为它就是一个简单的字符串,自包含的意思是虽然是随机的字符串,但是它是可以自定义的,包含了所需要传递的信息
用户登录成功后,系统会自动下发JWT令牌,然后在后续的每次请求中,都需要在请求头header中携带到服务端,请求头的名称为token,值为登录时下发的JWT令牌
2.参数配置化
使用@Value注解
ps:在application.properties配置文件中都是字符串,所以不需要加引号和分号,直接key=value即可
3.yml格式配置文件
为了避免用@Value注解一个一个注入的繁琐操作,我们可以使用@ConfigurationPropertties注解
4.过滤器Filter
如果没有过滤器就需要在每个增删改查的接口加上类似登录校验的操作,太繁琐了