(十八)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

相关推荐
q***49863 分钟前
分布式WEB应用中会话管理的变迁之路
前端·分布式
zzzsde9 分钟前
【C++】二叉搜索树
开发语言·c++
IT_陈寒12 分钟前
JavaScript性能优化:10个V8引擎隐藏技巧让你的代码快30%
前端·人工智能·后端
无限进步_22 分钟前
C语言atoi函数实现详解:从基础到优化
c语言·开发语言·c++·git·后端·github·visual studio
上去我就QWER25 分钟前
C++中的堆和栈
开发语言·c++
HalvmånEver29 分钟前
Linux:基础开发工具(四)
linux·运维·服务器·开发语言·学习·makefile
专注VB编程开发20年35 分钟前
.net按地址动态调用VC++DLL将非托管DLL中的函数地址转换为.NET可调用的委托
开发语言·c++·c#·.net
q***787841 分钟前
Spring学习——新建module模块
java·学习·spring
q***11651 小时前
在Nginx上配置并开启WebDAV服务的完整指南
java·运维·nginx
u***u6851 小时前
PHP最佳实践
开发语言·php