(十八)JavaWeb后端开发案例——会话/yml/过滤器/拦截器

目录

1.业务逻辑实现

[1.1 登录校验技术------会话](#1.1 登录校验技术——会话)

1.1.1Cookie

1.1.2session

1.1.3JWT令牌技术

2.参数配置化

3.yml格式配置文件

4.过滤器Filter

5.拦截器Interceptor


1.业务逻辑实现

Day10-02. 案例-部门管理-查询_哔哩哔哩_bilibili

java 复制代码
    //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

如果没有过滤器就需要在每个增删改查的接口加上类似登录校验的操作,太繁琐了

5.拦截器Interceptor

相关推荐
孙克旭_3 小时前
JVM 入门详解:JVM、JRE、JDK 区别,JVM 基础结构梳理
java·开发语言·jvm
随遇而安zx3 小时前
【地基篇】---JVM 内存结构知识点(Java 8 运行时数据区深度解析)
java·开发语言·jvm
LabVIEW开发3 小时前
将自定义 DLL 与 INI 文件部署到 LabVIEW 实时目标
前端·labview·labview知识·labview功能·labview程序
布吉岛的石头3 小时前
Java 程序员第 48 阶段1:Transformer 架构总览与自注意力直觉,从 RNN 痛点理解注意力机制
java·架构·transformer
吴声子夜歌3 小时前
Guava——事件总线
java·网络·guava
FfHUCisI3 小时前
Golang 切片扩容策略
开发语言·数据库·golang
IT_陈寒3 小时前
Redis Pipeline用错竟比不用还慢,这个坑我帮你踩过了
前端·人工智能·后端
en.en..3 小时前
Ubuntu嵌入式开发 export环境变量
java·开发语言·数据库
gf13211113 小时前
【python_回复邮件】
android·java·python
攻城有术3 小时前
专项攻克——重写 Redis 依赖包方法的 6 种实现方式
java·数据库·redis·bootstrap