- 博客(47)
- 收藏
- 关注
原创 springboot_04
登录成功后,将生成的 JWT token 保存到 Redis,过期时间与 JWT 一致。主动注销:如用户修改密码或退出登录时,Redis 删除对应 token。请求时,除验证 JWT,还要验证 Redis 是否存在该 token。修改密码或退出登录时,从 Redis 删除 token,强制失效。目标:在登录逻辑中加入 Redis,实现 token 主动失效。背景:用户修改密码后,旧 token 仍可用,存在安全隐患。缺点:增加 Redis I/O,略微增加开销。优点:即使 JWT 没过期,也能随时失效。
2026-03-17 09:01:37
179
原创 springboot_03
新建注解@State配套写校验器校验器逻辑:如果state不在允许列表则抛异常在 DTOstate字段上加@State启用校验。
2026-03-17 09:00:49
213
原创 springboot_02
概览本阶段目标:快速搭建后端 + 前端环境,并规划后端注册/登录/用户详情模块明确将通过 Spring Boot + MyBatis 实现注册、登录、JWT 验证,以及用户详情获取等功能前端对应 Vue3 + axios、Element‑Plus 实现页面与后端联调。
2026-03-17 09:00:10
210
原创 springboot_01
核心思想自动配置(AutoConfiguration)起步依赖(Starter)内嵌服务器(Tomcat/Jetty)常用 Starter小坑不要和老版 Spring MVC XML 混用。多个配置文件时,优先。结构core:功能实现autoconfigure:自动装配自动装配类示例@Bean声明小坑Starter 不要引入。自动装配类命名要唯一。
2026-03-17 08:59:20
192
原创 JavaWeb & SpringBoot 总结
DDL(数据定义):CREATE、ALTER、DROPDML(数据操作):INSERT、UPDATE、DELETEDQL(数据查询):SELECTDCL(数据控制):GRANT、REVOKE一对多:外键放在多方多对多:建立中间表一对一:在任意一方添加唯一外键。
2026-03-15 14:10:16
223
原创 JavaWeb_09
通过Mybatis的快速入门,我们明白了,通过Mybatis可以很方便的进行数据库的访问操作。但是大家要明白,其实java语言操作数据库呢,只能通过一种方式:使用sun公司提供的 JDBC 规范。Mybatis框架,就是对原始的JDBC程序的封装。那到底什么是JDBC呢,接下来,我们就来介绍一下。JDBC: ( Java DataBase Connectivity ),就是使用Java语言操作关系型数据库的一套API。本质:sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
2026-03-15 14:09:45
400
原创 JavaWeb_08
Java操作数据库的标准接口本质:接口+数据库驱动实现类本汇总笔记系统梳理了JavaWeb开发的核心技术栈,从数据库基础(MySQL)、Java数据库交互(JDBC)、项目构建(Maven),到Web开发基础(Servlet/HTTP/Tomcat),再到高级特性(会话管理、过滤器等)。这些技术构成了JavaWeb开发的完整知识体系,为后续学习Spring、MyBatis等框架打下坚实基础。
2026-03-15 14:09:03
419
原创 JavaWeb_07
过滤器链是指在一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链。如下图就是一个过滤器链,我们学习过滤器链主要是学习过滤器链执行的流程执行Filter1的放行前逻辑代码执行Filter1的放行代码执行Filter2的放行前逻辑代码执行Filter2的放行代码访问到资源执行Filter2的放行后逻辑代码执行Filter1的放行后逻辑代码以上流程串起来就像一条链子,故称之为过滤器链。
2026-03-15 14:08:23
422
原创 JavaWeb_06
对于会话跟踪这四个词,我们需要拆开来进行解释,首先要理解什么是会话,然后再去理解什么是会话跟踪会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含请求和响应。用实际场景来理解下会话,比如在我们访问京东的时候,当打开浏览器进入京东首页后,浏览器和京东的服务器之间就建立了一次会话,后面的搜索商品,查看商品的详情,加入购物车等都是在这一次会话中完成。每个浏览器都会与服务端建立了一个会话,加起来总共是个会话。
2026-03-15 14:07:51
397
原创 JavaWeb_05
HTTP响应数据总共分为三部分内容,分别是响应行、响应头、响应体,对于这三部分内容的数据,respone对象都提供了哪些方法来进行设置?响应行响应头响应体对于响应体,是通过字符、字节输出流的方式往浏览器写,获取字节输出流介绍完这些方法后,后面我们会通过案例把这些方法都用一用,首先先来完成下重定向的功能开发。
2026-03-13 11:51:11
376
原创 JavaWeb_04
HTTP概念HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。数据传输的规则指的是请求数据和响应数据需要按照指定的格式进行传输。如果想知道具体的格式,可以打开浏览器,点击F12打开开发者工具,点击Network来查看某一次请求的请求数据和响应数据具体的格式内容,如下图所示:注意:在浏览器中如果看不到上述内容,需要清除浏览器的浏览数据。chrome浏览器可以使用ctrl+shift+Del进行清除。
2026-03-13 11:50:41
340
原创 JavaWeb_03
是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。官网 :http://maven.apache.org/通过上面的描述大家只需要知道Maven是一个工具即可。Apache 是一个开源组织,将来我们会学习很多Apache提供的项目。
2026-03-13 11:50:11
439
原创 JavaWeb_02
数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败。事务是一个不可分割的工作逻辑单元。这些概念不好理解,接下来举例说明,如下图有一张表张三和李四账户中各有100块钱,现李四需要转换500块钱给张三,具体的转账操作为第一步:查询李四账户余额第二步:从李四账户金额 -500第三步:给张三账户金额 +500。
2026-03-13 11:49:39
591
原创 JavaWeb_01
了解了数据模型后,接下来我们就学习SQL语句,通过SQL语句对数据库、表、数据进行增删改查操作。英文:Structured Query Language,简称 SQL结构化查询语言,一门操作关系型数据库的编程语言定义操作所有关系型数据库的统一标准对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。
2026-03-13 11:48:47
370
原创 html css 笔记
做好笔记</dt><dd>笔记是我们以后复习的一个抓手 </dd><dd>笔记可以是电子版,也可以是纸 质版</dd><dt>多加练习</dt><dd>只有敲出来的代码,才是自己的 </dd><dt>别怕出错
2025-03-12 14:26:34
742
原创 vue 134~152
侦听一个或者多个数据的变化,数据变化时执行回调函数,俩个额外参数 immediate控制立刻执行,deep开启深度侦听。语法糖下组件内部的属性和方法是不开放给父组件访问的,可以通过defineExpose编译宏指定哪些属性和方法容许访问。通过watch监听的ref对象默认是浅层侦听的,直接修改嵌套的对象属性不会触发回调执行,需要开启deep。如果我们要定义组件的 name 或其他自定义的属性,还是得回到最原始的用法——再添加一个普通的。顶层组件可以向底层组件传递方法,底层组件调用方法修改顶层组件的数据。
2025-02-11 23:52:01
858
原创 vue 88-108
目标:明确Vuex是什么,应用场景以及优势state: {count: 0},// 定义mutations})通过mutations修改state的步骤1.定义 mutations 对象,对象中存放修改 state 的方法2.组件中提交调用 mutations(通过$store.commit(‘mutations的方法名’))getters: {// getters函数的第一个参数是 state// 必须要有返回值。
2025-02-09 20:53:59
621
原创 vue 43-87
编号</th><th>名称</th><th>图片</th><th width="100px">标签<img/></td><td>
2025-02-08 19:14:39
675
原创 vue 43-63
两种注册方式:局部注册:创建.vue组件(单文件组件)使用的组件内导入,并局部注册全局注册:创建.vue组件(单文件组件)main.js内导入,并全局注册 Vue.component(组件名,组件对象)使用:<组件名></组件名>技巧:一般都用局部注册,如果发现确实是通用组件,再抽离到全局。两种组件关系分类 和对应的组件通信方案父子关系非父子关系provide &inject 或 eventbus通用方案vuex父子通信方案的核心流程。
2025-02-07 18:45:45
585
原创 JAVA40-53
Random生成随机数需要几步?导包:import java.util.Random;如何生成65-91之间的随机数?定义数组的时候直接给数组赋值。静态初始化数组的格式://完整格式数据类型[] 数组名=new 数据类型[](元素1,元素2,元素3..3;//简化格式数据类型[]数组名=[元素1,元素2,元素3,…};动态初始化数组的写法是什么样的?有什么特点?数据类型[] 数组名=new 数据类型[长度];动态初始化数组后元素的默认值是什么样的?
2025-02-07 18:44:46
514
原创 JAVA20~39
数据在计算机底层都是怎么存储的?都是采用二进制:使用0、1,按照逢2进1的规则表示数据来存储。如何快速的算出一个数据的二进制形式?除二取余法计算机底层表示数据的最小单元是什么?字节,一个字节等于8个二进制位:1B=8b为了便于观察和表示二进制,推出了八进制和十六进制。每3位二进制作为一个单元,最小数是0,最大数是7,共8个数字,这就是八进制。每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用:0~9ABCDEF代表就是十六进制。
2025-02-06 18:58:06
649
原创 Vue23~42
四个阶段,八个钩子 → 三个常用 created, mounted, before Destroy组件化:页面可拆分成一个个组件,每个组件有着独立的结构、样式、行为好处:便于维护,利于复用→提升开发效率。组件分类:普通组件、根组件。根组件:整个应用最上层的组件,包裹所有普通小组件。一个根组件App.vue,包含的三个部分:template 结构(只能有一个根节点)style 样式(可以支持less,需要装包 less和 less-loader)script行为。
2025-02-06 18:56:47
465
原创 Vue学习1~22
Vue是什么?Vue是一个用于 构建用户界面 的渐进式 框架构建用户界面:基于 数据 动态 渲染 页面渐进式:循序渐进的学习框架:一套完整的项目解决方案,提升开发效率↑(理解记忆规则)规则→官网创建Vue实例,初始化渲染的核心步骤:准备容器引包(官网)-开发版本/ 生产版本创建Vue实例new Vue()指定配置项el data =>渲染数据el指定挂载点,选择器指定控制的是哪个盒子data 提供数据插值表达式的作用是什么?
2025-02-05 17:56:35
952
原创 Java学习1~19
Java是什么?是一门高级编程语言。Java是哪家公司研发的,现在属于哪家公司?sun公司、Oracle公司。Java之父是谁啊?詹姆斯.高斯林Java能做什么?基本上什么都可以干,主要做互联网系统的开发。Java有哪些技术平台啊JavasE(标准版)JavaEE(企业版)、JavaME(小型版)要使用Java,必须先安装什么?去哪里下载?JDK (Java Development Kit)开发者工具包;Oracle官网。LTS版本有哪些?
2025-02-05 17:55:12
878
原创 JS(110-130)
实例化日期对象怎么写?new Date()日期对象方法里面月份和星期有什么注意的?月份是011,星期是Q6获取时间戳有哪三种方式?重点记住那个?Date.now()重点记住+new Date()因为可以返回当前时间戳或者指定的时间戳什么是DOM节点?DOM树里每一个内容都称之为节点DOM节点的分类?元素节点 比如div标签属性节点 比如class属性文本节点 比如标签里面的文字我们重点记住那个节点?元素节点可以更好的让我们理清标签元素之间的关系。
2025-01-28 20:36:32
1065
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅