- 博客(22)
- 收藏
- 关注
原创 基于JWT实现token登录验证学习笔记
4 客户端存储:存储在 localStorage 或 cookie 中。5 请求携带:后续请求在 Authorization 头中携带 JWT。JWT工具类是一个封装了JWT核心操作的工具类,主要负责令牌的。:存储声明(Claims),如用户 ID、角色等。6 服务器验证:验证令牌的有效性并处理请求。从令牌中提取用户的信息。2 服务器验证:验证成功后生成JWT。检查令牌签名是否有效。3 返回JWT:将令牌返回给客户端。,是实现用户验证的关键组件。:包含令牌类型和签名算法。(2)验证JWT令牌。
2025-06-11 14:32:18
103
原创 基于JavaWeb分层架构的ssm注解开发整合
ssm是Spring,SpringMVC,和mybatis三个框架整合的简称提供Ioc和AOP功能,管理应用组件和生命周期的依赖关系。负责处理HTTP的请求和响应。负责简化数据库的操作,实现对象与数据库的映射注解作用说明@Component通用组件注解,被 Spring 扫描后注册为 Bean@Service标记业务层组件(Service 实现类)标记数据访问层组件(DAO/Mapper)标记表现层组件(控制器类)@Autowired按类型自动注入依赖对象。
2025-05-27 19:55:08
888
原创 spring 03 aop学习笔记
AOP是一种面向切面编程的编程的范式。与传统面向对象编程不一样,AOP关注的是横跨多个模块的横切逻辑,在事务处理,日志记录,安全控制等操作中被广泛使用。Spring AOP 是 Spring 框架对 AOP 编程范式的具体实现,它基于动态代理机制,允许开发者在不修改原有业务代码的基础上,将横切逻辑织入到目标方法执行的各个阶段,从而实现代码的解耦和复用。
2025-05-22 20:30:22
743
原创 Spring02--注解开发
Component:通用的组件注解,标记一个类为 Spring 管理的 Bean。:用于 DAO 层(数据访问层),继承自@Component。@Service:用于 Service 层(业务逻辑层),继承自@Component。:用于 Web 层(控制器),继承自@Component。:用于配置类,替代 XML 配置文件,继承自@Component。// 标记为Service层组件@Service// 实现方法// 标记为配置类// Bean定义方法。
2025-05-18 18:05:54
254
原创 Spring学习笔记01(初识Spring+Spring的核心概念)
Spring是一款开源的轻量级的java开发框架,目的是通过控制反转(IoC)和面向切面编程(AOP)等核心特性解决企业级应用开发业务逻辑层和其他各层的耦合问题,提高代码的可维护性和可测试性。
2025-05-17 16:06:14
445
原创 MyBatis-02动态条件查询操作
一旦满足条件,后续条件不再执行,如果没有条件满足会执行other内的操作。然后将select标签内的resultType改成resultMap即可。在定义实体类的时候Java的实体属性命名可能和数据库的字段不一样。当没有条件满足时,不生成where字句,防止语法出错。此时需要使用resultMap来解决其映射关系的问题。id resultMap的唯一标识。:字符串替换(慎用,有 SQL 注入风险)类似于java的switch-case操作。可以自动移除第一个and或or。
2025-05-16 18:18:14
408
原创 Mybatis-01环境搭建以及开发流程
MyBatis作为一款优秀的持久层框架,它支持定制化SQL,存储过程以及高级映射。MyBatis几乎避免了所有的JDBC代码和手动配置参数以及获取结果集。Mybatis可以使用简单的XML来配置和映射原生信息,将接口和Java对象映射成数据库中的记录。
2025-05-15 16:07:12
326
原创 javaweb会话技术02 Session
服务端会话机制:Session是服务器为每一个用户创建的独立会话空间,存储用户的会话状态。核心作用:跟踪用户状态,如登录状态,购物车信息等。现实原理服务器为每个 Session 分配唯一的 Session ID(通常存储在 Cookie 中)。浏览器通过 Cookie 携带 Session ID 访问服务器,服务器根据 ID 找到对应的 Session。核心方法:获取或创建 Session:存储数据:获取数据:移除数据:销毁 Session:设置超时时间。
2025-05-13 17:53:22
279
原创 javaweb会话技术01 cookie
cookie是某些网站为了辨别用户身份,进行session跟踪,从而存储在用户本地端上的小型文本文件,通常经过加密。在客户端与服务器之间传递状态信息,如用户登录状态,偏好设置等。生命周期会话 Cookie:默认保存在浏览器内存中,关闭浏览器即失效。持久 Cookie:通过设置有效期(秒),存储在本地文件中。Cookie cookie = new Cookie(name , value) 用于创建Cookieresponse.addCookie(cookie) 用于把Cookie发送到客户端。
2025-05-10 19:42:28
402
原创 sql多表查询
与前两个通过关联字段的水平合并方式不一样,联合查询是将多个select语句纵向拼接,需要要求多个查询的列数相同,列数据兼容。嵌套查询也叫子查询,指的是在sql查询语句里嵌套另一个或多个select语句。若无匹配,右表字段为。查询同时涉及两个及以上的表,通过。:查询学生及其课程成绩(学生表。主查询筛选成绩大于平均分的行。:查询成绩高于平均分的学生。(主键和外键)建立联系。先计算平均分(子查询)。
2025-04-24 19:40:00
401
原创 简述mysql 数据查询
- 从第start+1条开始,返回n条(start从0开始)LIMIT用于限制SELECT用于查询结果的数量(例如LIMIT 10是取前10行数据为查询结果,可以通过SELECT进行数据查询,该语句有灵活使用方式和丰富的功能。用户可以通过ORDER BY 语句对查询结果进行升序ASC和降序DESC排序。用于统计数据,需配合GROUP BY使用(若不分组,则对全表统计)GROUP字句将查询结果按某一列或多列的值分组,值相等的为一组。LIMIT 5,2 是忽略前2行后取后面的前5行数据)
2025-04-20 13:29:16
392
原创 MYSQL数据定义速成笔记
2 表(table): 数据库的二维结构,由行(记录)和列(字段)两部分组成。如果需要指定字符集(CHARACTER)和排序(COLLATE)操作。1 数据库(database):存放数据的仓库,用于分类管理相关数据。3 字段(column): 表中的列,定义数据类型和存储格式。4 修改数据库(修改字符集和排序规则)(用ALTER)3 对表的修改等操作(以表employess为例)列名 数据类型 列级完整性约束,列名 数据类型 列级完整性约束,2 查看数据库(SHOW)3 选择数据库(USE)
2025-04-17 21:24:39
366
原创 java反射机制个人学习==速成笔记
在java运行状态中,对于任意一个类,都可以知道这个类的所有属性方法,对于任意一个对象,都能运用它的方法和属性,允许程序运行时获取类的信息,创建对象,调用方法和属性。
2025-04-13 19:05:17
614
原创 蓝桥杯备战刷题记录3(洛谷P1605 迷宫DFS)(七段码相关题型)
和蓝桥杯十一届真题七段码一样这道题主要也是考察路径的数量,但不同点在于这道题有规定了起点与终点,所以不用像七段码那样把每一点都作为起点,而是可以直接以规定的起点为起点直接进行深度优先搜索,直到找到终点结束,而且因为只有一个起点也就避免了路径重合的情况。
2025-03-31 17:22:36
198
1
原创 蓝桥杯备战刷题记录2 (十一届真题七段码)(DFS+集合)
问题的核心问题是找到不限起点终点不限方向的所有路径组合,该题主要思想还是解决n个数的所有子集操作的路径类问题,例如1 2 3有多少个子集的问题,不同之处在于1 2 3有多少子集不会限制不同的组合,而该题是图,不同点只能和一部分点联通,也就是说点与点之间要满足相互连接的条件才能算是一个组合。
2025-03-31 13:46:09
240
原创 java io流个人速成笔记
IO流是连接程序和文件的“管子”,I是Input,O是Output,按方向分为输入输出流,按数据单元分为字节流和字符流。
2025-03-30 20:33:12
307
原创 java泛型个人学习笔记
泛型是一种编程概念,被允许再定义类,借口或方法时使用的参数,不是一种具体类型。借助泛型,我们能够编写复用的代码以下是一个简单的泛型示例// 私有字段,类型为泛型 T,可存任意类型数据this.t = t;return t;以上代码中,Box就是一个泛型类,T是一种类型参数。这段代码将Box进行实例化,定义时使用了类型参数T,说明可以存储任意类型的数据。这里使用了Integer作为类型参数,意味着Box专门用来存储Integer类型的数据。
2025-03-26 20:26:07
281
2
原创 蓝桥杯备战刷题记录1 (动态规划)P1130 红牌
对该题的具体策略可以从第一组的第一个步骤开始,把所有不同小组的不同步骤的最短天数分别求出来,到所有小组中最后一个步骤所需最短天数最小的就是完成所有步骤所需最短天数。也就是定义一个二维数组dp[n][m],dp[i][j]代表在第i组下第j个步骤所需要的最短天数。由题目知,只能从原来的小组 I 更换到小组 I+1,当然从最后一个小组 M 可以更换到小组 1。例如dp[2][2]只能是由dp[1][1]或者dp[2][1]与该小组步骤相加的最小值。所以dp[i][j]所有的更换路径如下。
2025-03-24 19:57:12
238
原创 蓝桥杯备战笔记3 BFS个人速成笔记+BFS迷宫寻路题
与通过递归一条路走到底的DFS不同,BFS是一种通过队列入队出队的方法实现全面扩散组层递进的寻路算法。
2025-03-22 15:35:02
374
原创 java多线程个人学习笔记
需要在创建的类中重写run()方法,并将实现线程功能的代码写入run()方法,然后调用Thread类的start()方法执行线程。如果多线程程序中: 存在一个线程,现在需要插入另一个线程,要求插入的线程结束才能继续执行原来的线程,此时就需要用到join()方法。当创建一个新线程时,如果没有显式设置优先级,它将继承父线程的优先级,默认情况下父线程优先级为。每一个线程都有各自的优先级,如果有很多线程处于就绪状态,系统就会根据优先级来决定那个线程进入运行状态。线程是程序执行的最小单位,属于进程的一个执行单位,
2025-03-17 16:09:29
726
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人