- 博客(270)
- 收藏
- 关注
原创 Session原理
Session 靠“JSESSIONID(身份证) + Cookie(传递身份证的信使)”第一次请求,服务器发 JSESSIONID 给浏览器;后续请求,浏览器自动带 JSESSIONID 找服务器;服务器通过 JSESSIONID 识别用户,使用 Session 里的数据。
2025-06-27 00:04:29
729
原创 DBUtils、Druid、JDBC的关系和分工
JDBC 是基础标准,Druid 优化连接管理(复用连接 ),DBUtils 优化编码流程(简化 SQL 执行和结果处理 )。三者协同,让数据库操作更高效、更简洁,是实际项目中常用的组合~
2025-06-26 17:52:46
648
原创 SQL 注入问题 和 解决方案(PreparedStatement)
是Statement的子类,预先把 SQL 结构编译好,用户输入的内容作为 “数据参数” 传入,而不是直接拼接 SQL。问题:SQL 注入是用户输入被恶意拼接,改变 SQL 逻辑,导致数据库安全问题。条件:用户可控参数 + 直接拼接 SQL。解决方案:用预编译 SQL,通过?占位符传参数,让用户输入只当数据,不当 SQL 语法,从根本上防注入。记住:开发中只要涉及用户输入拼接 SQL,必须用 PreparedStatement,这是最基础的数据库安全防护!
2025-06-26 16:32:17
834
原创 Servlet 的“路径问题”
Servlet 的 “路径问题” 关于 “转发、重定向、页面链接” 里的路径该咋写、为啥不同场景路径规则不一样的问题
2025-06-26 14:50:14
681
原创 request的getRequestDispatcher() 方法与ServletContext的比较
request是 Servlet 容器为每次请求创建的对象,作为参数传入 Servlet 方法;是基于本次请求,实现服务器内部转发的常用方式,和版的转发功能类似但路径规则有差异,都是 Servlet 处理多组件协作的重要工具。
2025-06-26 13:30:32
439
原创 getServletContext() VS getServletConfig()
属于,用来从 “当前 Servlet 配置” 拿到 “全局应用上下文”。属于Servlet,用来拿到 “当前 Servlet 的专属配置”。两者是不同层级的对象,各司其职,没写错~ 下次用的时候,想读全局配置就先拿,读当前 Servlet 专属配置就用。这是通过读取web.xml中 Servlet 初始化参数web.xml中给 Servlet 配的初始化参数,会被容器封装到对象里;代码中通过拿到这个对象,再用读取配置,实现 “配置 → 代码” 的传递。这样就能把web.xml。
2025-06-26 11:30:13
975
原创 Servlet中Http请求转发过程分析
这是请求转发(Forward)一次浏览器请求,服务器内部多个 Servlet 共享同一份 request/response,通过forward方法接力处理,浏览器感知不到中间转发,地址栏也不变。这样设计能让多个 Servlet 协同处理复杂请求(比如 Servlet1 验权,Servlet2 查数据库 ),还能共享数据,很灵活。
2025-06-26 08:48:46
256
原创 Servlet 中 request 对象的继承体系
request对象的继承体系是“规范(接口) + 容器实现(类)”模式,让开发者专注写业务(调用接口方法),容器负责底层实现,既灵活又安全。
2025-06-26 08:38:17
312
原创 Servlet 处理 HTTP 请求的完整流程
Servlet 处理完请求后,将响应数据(如页面内容、接口返回值 )(如 URL、请求参数、请求方法 GET/POST 等 )。容器根据请求 URL,找到对应的。(如 HTML、JSON 等 )。Servlet 容器 →。Servlet 容器 →。Servlet 通过。获取前端传的参数 )。
2025-06-25 20:41:15
451
原创 Servlet 生命周期及其方法
Servlet 生命周期是“1 个实例 → 4 个阶段 → 方法按序执行”一生只 new 1 次(构造方法)→ 出生后初始化(init)→ 每次请求干活()→ 最后销毁(destroy)释放资源。
2025-06-25 18:46:53
936
原创 Servlet 构造方法
写法:用无参构造,别写带参的(否则容器报错 )。时机:懒加载(首次请求)或预加载(非负 )时执行。次数:全局只执行 1 次(Servlet 是单例 )。作用:仅负责创建实例,初始化逻辑放init()里更安全。
2025-06-25 18:44:37
773
原创 Tomcat 的 conf/web.xml 的全局配置文件
是 Tomcat 的 “全局规则手册”,定义了静态资源处理、JSP 解析、Session 超时等基础逻辑,确保所有 Web 应用 “开箱即用”。如果需要对单个项目自定义配置(如新增 Servlet ),则在项目的中编写。
2025-06-25 15:23:50
414
原创 Tomcat 中 “缺省 Servlet(DefaultServlet)” 和 URL 路径匹配规则(/ vs /* )
Tomcat 中 “请求兜底处理规则”缺省 Servlet(DefaultServlet )负责处理 “没人要” 的请求(静态资源或 404 ),配置在的路径。自定义 Servlet 若配会覆盖它,配/*会拦截所有请求,都可能导致静态资源无法访问,需根据场景选对路径配置~
2025-06-25 15:12:10
480
原创 @WebServlet 注解参数
的参数本质是“把 XML 配置的零散标签,用注解的方式内聚到代码中”URL 映射:让容器知道哪个路径交给哪个 Servlet 处理。初始化配置:启动时传递参数,避免硬编码。生命周期控制:决定 Servlet 何时创建、是否异步处理。
2025-06-25 14:41:28
1030
原创 注解的定义与使用
用@interface定义注解,加@Retention(必选RUNTIME好反射 )、@Target(选作用范围 )。在类 / 方法 / 字段上用@注解名(属性=值)标记。(可选)用反射读取注解,实现 “根据注解动态逻辑”。
2025-06-25 12:37:35
304
原创 Servlet 的工作机制
Servlet 是个 “被动干活的 Java 类”,必须依赖 Servlet 容器(如 Tomcat )才能运行。容器负责接收请求、找对应 Servlet 处理、返回响应,整个过程 Servlet 不用操心 “怎么启动、怎么接请求”,只要专注处理业务逻辑~(简单说:Servlet 是车间工人,容器是工厂管家,工人听管家安排干活,自己不用想 “怎么接单、怎么交货” )
2025-06-25 11:32:01
415
原创 Web 服务器处理浏览器请求的流程
Web 服务器处理浏览器请求的完整流程:浏览器通过 HTTP 发请求,服务器解析后,静态资源直接返回,动态资源(Servlet/JSP )结合数据库处理逻辑、生成内容,最终通过 HTTP 响应返回,由浏览器渲染展示。核心是 “静态资源直接响应,动态资源需逻辑 + 数据支撑”,体现了 Web 应用的分层处理模式。
2025-06-25 10:34:02
1075
原创 Bootstrap是个啥?
它是前端开发的 “工具箱”,里面有现成的 “零件”(导航、按钮、弹窗等组件)和 “组装说明书”(栅格布局、响应式规则),能让你少写重复代码,更快做出好看、适配多设备的网页,不是抽象概念,就是实实在在能拿来用的代码框架~(简单说:想快速做网页?别自己从头砌砖,直接用 Bootstrap 现成的 “预制砖” 和 “砌墙方法”,效率翻倍 )
2025-06-24 22:12:50
408
原创 jQuery 事件函数的固定写法格式
固定部分灵活部分选择器内容(如'#id''.class'函数内部的代码逻辑事件名(如'click'函数参数名(event可写成其他)如果用一句话概括 jQuery 事件函数的固定模板// 这里写你想执行的代码});
2025-06-24 12:33:13
316
原创 《机器学习》:对偶问题:SMO算法
SMO 是 SVM 对偶问题的“高效求解算法”,核心是“拆大为小,每次优化 2 个变量”,利用闭式解快速迭代,让 SVM 能在实际数据(尤其是样本多的时候)中高效训练。简单说,对偶问题是 “设计了一个更易解的数学形式”,SMO 是 “让这个数学形式能在电脑上快速算出结果” 的具体算法 —— 没有 SMO,SVM 的对偶问题理论再漂亮,也没法实际应用~
2025-06-22 18:52:36
127
原创 Vue3:动态切换组件的写法格式
缓存所有组件可能导致内存占用过高,仅对需要保留状态的组件使用。的值必须与注册的组件名完全一致(大小写敏感)。,否则 Vue 找不到组件定义。选项中注册组件,会报错。局部注册的组件必须先。
2025-06-20 12:26:34
311
原创 Ajax技术是个啥?(通俗
Ajax 的 “技术实现” 就是“利用浏览器提供的能力(发请求、运行 JS),通过 JavaScript 编排网络请求和页面更新,最终实现‘不刷新页也能拿新数据改页面’”的固定方案。不用纠结太专业的词,记住它是 “浏览器、JS、网络请求 一起配合干大事” 的玩法,就懂啦!
2025-06-18 15:21:48
751
原创 对 Vuex 的运行原理图的简单理解(用图书管理解释
Vuex 的运行流程是“组件 → Actions(处理异步)→ Mutations(改状态)→ State(更新)→ 组件(重新渲染)”Actions 管 “复杂 / 异步逻辑”,Mutations 管 “直接改状态”,State 存 “共享数据”,Devtools 管 “记录日志”。整个流程就像“同学→班长→图书管理员→图书角→同学”借书的过程。
2025-06-18 09:51:56
1089
原创 Vue:状态管理手动实现 简单介绍
基础版store.js用reactive创建响应式对象 → 组件import后直接用store.xxx。全局挂载版store.js默认导出 →main.js挂载到→ 组件直接用。固定套路共享数据放store.js,用reactive包装。组件里要么import用,要么挂全局用$store。模板里直接写store.xxx或$store.xxx,方法里写。
2025-06-18 09:22:57
299
原创 对 Vue 状态管理 的基本理解(通俗
状态管理就是为了解决“多个组件共享数据难、同步乱”的问题,核心思路是:把共享数据放到全局管理,让组件能直接访问、修改,且自动同步变化。共享数据 = 图书角的书状态管理库(如 Vuex)= 图书角管理员组件 = 借书、看书的同学。
2025-06-18 08:51:52
465
原创 Vue Router 导航守卫的完整执行流程(极简理解版
路由切换的 12 步流程,就是换教室的 12 个环节准备离开(检查作业、安检)→进入新教室(点名、确认)→收尾(广播、发课本)。每个环节的 “班主任 / 门卫” 就是导航守卫,负责在对应时机做检查或处理。
2025-06-17 13:57:37
351
原创 Vue Router 导航守卫的完整执行流程的 简单讲解(通俗
步骤快递工序比喻导航守卫 / 操作作用1下单导航被触发开始路由切换2卖家检查商品离开组件前检查3快递公司安检全局beforeEach全局拦截(登录、权限)4同一路由更新包裹信息组件复用,更新数据5敏感路由单独检查路由独享单个路由权限控制6拆包裹,准备内容解析异步路由组件加载懒加载的组件代码7配送站前检查地址进入新组件前准备数据8快递公司最后确认派送全局确保所有守卫通过9生成物流单,确认派送导航被确认准备更新 DOM10通知 “已签收”全局。
2025-06-17 12:35:55
888
原创 Vue:导航守卫—组件内守卫简单讲解(通俗
守卫名称触发时机能否用this典型用途进入组件前否(用vm提前加载组件数据组件复用、参数变化时是参数变化时更新组件状态离开组件时是提示未保存内容、阻止离开进入前:提前准备(加载地图)。参数变化:局部更新(切换难度)。离开时:检查进度(保存游戏)。记住这个比喻:组件内守卫就像游戏的 “存档点”,让你在进入、切换、离开关卡时,都能控制游戏行为~
2025-06-17 12:19:50
250
原创 Vue:导航守卫 简单介绍
想全局拦截(如登录判断)→ 用全局守卫beforeEach。想单个路由拦截(如管理员页面)→ 用路由独享守卫。想在组件内拦截(如离开时提示)→ 用组件内守卫等。写法核心:守卫里必须调用next()决定是否放行,常用逻辑是「判断条件 →next(目标路径)或next()
2025-06-17 11:57:12
441
原创 Vue:重定向redirect的三种写法
重定向的本质是 “访问 A 路径时,自动跳转到 B 路径”直接路径:简单粗暴,适合固定跳转。路由名称:解耦路径,适合路径可能变化的场景。动态跳转:带参数传递,适合需要参数处理的场景。
2025-06-17 10:29:25
880
原创 Vue:事件捕获(capture 修饰符)
capture让事件在 “捕获阶段” 就触发,改变默认的 “冒泡阶段触发” 顺序,实现父元素优先响应(不管子元素有没有触发,父元素先执行自己的逻辑)。默认是 “子 → 父”(冒泡)加capture是 “父 → 子”(捕获),相当于是是改变事件传播顺序的 “插队符”
2025-06-15 14:04:43
567
原创 Vue:v-on 指令和事件监听 基本介绍
需求Vue 写法监听点击事件带参数触发方法<button @click="handle('参数')">获取事件对象阻止事件冒泡表单提交不刷新页面按回车键触发事件事件只触发一次。
2025-06-15 11:27:40
550
原创 Vue:事件处理中的事件对象的获取方式 简单介绍(通俗
事件对象是浏览器给的 “事件详情包”,Vue 提供了 2 种拿包方式。简单场景用方式 1(自动接收),复杂场景(需要传额外数据)用方式 2$event手动传)。记住$event是 Vue 规定的 “传事件对象的固定语法”,而方法里的参数名可以自己随便取~
2025-06-15 11:07:29
453
原创 Vue:export default 模块导出的简单讲解(通俗
场景类比你有一个仓库(JS 文件),里面放着各种货物(数据、函数、对象)。当别人(其他文件)需要你的货物时,你需要通过 “快递”(导出)把货物发出去,否则别人无法拿到。代码中的 “导出”JavaScript 中,一个文件就是一个模块,若想让其他文件使用当前模块的内容,必须通过export语法 “发货”。
2025-06-15 09:55:55
1021
原创 Vue:函数式组件简单介绍(通俗
你网购了一个乐高积木(组件),快递包裹上贴了标签(props),写着 “红色方块”、“2x2 尺寸”。组件拿到这些标签后,就能知道自己该长什么样。你有一堆乐高积木(组件),有些积木很简单(比如一个方块),只负责拼接到其他积木上,不需要自己存储状态(如颜色、大小)。
2025-06-15 09:51:55
328
原创 Vue:自定义指令 的简单介绍(通俗
场景你发朋友圈时,想给所有图片自动加 “水印” → 每次发图都手动加水印太麻烦 → 你写了个 “一键加水印” 的插件,发图时自动调用。对应 Vue朋友圈图片 → Vue 里的 DOM 元素(如<img>手动加水印 → 每次都写。一键加水印插件 →自定义指令(封装通用 DOM 操作逻辑)。核心作用封装重复的 DOM 操作(如自动聚焦、权限控制、水印效果),让代码复用更简单!你在多个页面都需要 “输入框自动聚焦” → 每个页面都写→ 代码冗余。把 “自动聚焦” 封装成v-focus。
2025-06-14 19:15:41
924
原创 Vue : v-pre 指令 简单介绍
v-pre元素内容不会被 Vue 编译,直接显示原始文本。适合展示 Vue 语法或优化静态内容的加载性能。就像给内容加了 “保护罩”,Vue 不会碰里面的任何语法,原样展示。
2025-06-14 18:51:00
304
原创 Vue : v-once 指令 简单介绍
v-once元素只渲染一次,之后数据变化也不更新视图。适合静态内容,能优化性能,让页面渲染更高效。就像印刷画,印出来就定型了,原稿再改也影响不到它。
2025-06-14 18:46:40
467
原创 Vue : v-cloak 指令 简单介绍
v-cloak加载时隐藏未编译的插值语法({{ xxx }}编译完成后自动显示真实数据。就像微信加载表情包,先用占位符遮着,加载完再显示真内容。
2025-06-11 21:30:03
341
原创 Vue : v-model 的 3 个修饰符number,trim,lazy
number:输入转数字,避免字符串拼接。.trim:去掉首尾空格,清理脏数据。.lazy:失去焦点才更新,减少实时更新的性能消耗。
2025-06-11 21:19:38
274
Scala:学生成绩信息txt文件
2025-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人