- 博客(285)
- 收藏
- 关注
原创 JSONP 跨域请求原理解析与实践
JSONP(JSON with Padding)是一种跨域数据交互技术,虽然它不是真正的 AJAX 请求,但可以实现类似的局部刷新效果。本文将深入解析 JSONP 的原理,并通过完整的 Java 后端和 JavaScript 前端示例演示其工作流程。
2025-06-15 16:06:23
191
原创 Java 中的 JSON 转换
Fastjson 是阿里巴巴开发的高性能 JSON 处理库,以其快速的序列化和反序列化速度而闻名。它提供了简洁的 API,能够方便地将 Java 对象与 JSON 格式进行相互转换,在处理大量数据时表现出色。Jackson 是另一个广泛使用的 Java JSON 处理库,它功能丰富,支持多种数据格式,并且具有良好的扩展性。Jackson 提供了数据绑定(Data Binding)功能,可以将 JSON 数据直接映射到 Java 对象,反之亦然。。
2025-06-15 11:52:24
643
原创 Ajax-概述、XMLHttpRequest对象、AJAX GET请求、AJAX POST请求
本文深度解析传统请求痛点(页面刷新/体验割裂),详解AJAX核心XMLHttpRequest对象四步使用法(创建→回调→开启→发送),手写GET/POST请求解决缓存与数据提交难题,并附表单模拟实战代码。助你彻底掌握异步交互,实现页面无刷新更新!
2025-06-14 20:41:11
683
原创 模拟 AJAX 提交 form 表单及请求头设置详解
场景不使用 encodeURIComponent ()使用 encodeURIComponent ()参数包含空格空格被转换为(部分浏览器)或保留为空格(可能导致错误)空格被编码为%20,所有服务器都能正确解析参数包含 & 符号服务器将其解析为参数分隔符,导致参数拆分错误& 被编码为%26,作为参数值的一部分被正确传递参数包含 = 符号服务器将其解析为键值对分隔符,导致参数结构混乱= 被编码为%3D,作为参数值的一部分被正确传递参数包含非 ASCII 字符。
2025-06-14 20:28:45
942
原创 当遇到“提交失败:404”的问题时,通常表明前端请求的URL无法正确匹配到后端的Servlet或资源。
form.html运行结果:当遇到“提交失败:404”的问题时,通常表明前端请求的URL无法正确匹配到后端的Servlet或资源。
2025-06-14 20:23:08
366
原创 @RequestHeader(“Authorization“) 解析:HTTP 请求头中的 Authorization 字段
是标准的 HTTP 请求头字段,用于传递认证凭证。它由客户端在请求时添加,服务端通过注解获取。常见用途:JWT 认证、OAuth 2.0 令牌传递、Basic Auth 等。通俗理解就像你去银行办业务时出示的身份证,告诉服务器 "我是谁",而则是服务器读取你身份证信息的工具。
2025-06-13 20:50:41
381
原创 “在同一事务中“ 的含义
"在同一事务中" 的核心是共享事务上下文声明式事务:使用注解标记方法,默认传播行为REQUIRED确保操作在同一事务中。编程式事务:通过或手动控制事务边界。跨方法调用:确保方法间通过代理对象调用,且子方法不使用等隔离传播行为。合理控制事务边界是保证数据一致性的关键,需根据业务场景选择合适的事务管理方式。通俗易懂地理解 "同一事务" 与代码示例"同一事务" 的本质一组操作共享原子性(要么都成功,要么都失败)。共享数据库连接和事务状态。实现方式用标记方法,确保多个操作在同一方法内或跨方法调用。
2025-06-13 20:00:43
521
原创 Spring 事务传播行为详解
REQUIRED如果存在事务则加入,不存在则创建新事务。这使得我们可以构建复杂的事务边界,确保相关操作在同一个事务上下文中执行,从而保证数据一致性。在设计事务边界时,应该考虑业务操作的原子性需求,将必须一起成功或失败的操作放在同一个事务中,使用REQUIRED传播行为可以有效地实现这一点。
2025-06-13 19:03:59
200
原创 Java 中使用 Redis 注解版缓存——补充
通过 @EnableCaching 注解和 Spring 的缓存抽象,我们可以非常方便地在 Java 应用中集成 Redis 缓存。这种声明式的缓存方式大大简化了代码,使我们能够专注于业务逻辑而不是缓存实现细节。在实际应用中,我们需要根据业务特点合理配置缓存策略,注意缓存一致性问题,并采取措施防止缓存穿透、击穿和雪崩等常见问题。
2025-06-12 11:48:04
746
原创 Spring MVC 常用请求处理注解总结
从请求体到 Java 对象的转换:从 Java 对象到响应体的转换:相当于的组合注解这两个注解通过 HttpMessageConverter 实现了 HTTP 数据与 Java 对象之间的自动转换,大大简化了 RESTful API 的开发。注意需配合或依赖 Jackson 等序列化框架解析请求体二、@RestController的作用是 Spring Boot 中一个组合注解,等价于。它表明该类中的所有方法的返回值都直接作为 HTTP 响应体返回,而不是视图名称。1.为何不需要因为已隐含了。
2025-06-12 10:32:06
1038
原创 JSON 序列化工具——补充
在当今的软件开发领域,数据的交换和存储无处不在,而 JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,以其简洁的语法和易于阅读、编写的特点,在前后端数据交互、配置文件等场景中被广泛应用。在 Java 开发中,JSON 序列化工具则扮演着将 Java 对象转换为 JSON 格式数据,以及将 JSON 数据反序列化为 Java 对象的关键角色。本文将深入探讨 Java 中常用的 JSON 序列化工具,从基础使用到实战技巧,帮助你更好地掌握数据处理的核心技术。
2025-06-10 12:56:57
737
原创 Spring Security 认证流程——补充
掌握这一流程后,开发者可以灵活配置认证逻辑(如数据库认证、JWT 认证)并扩展安全功能(如动态权限控制)Spring Security 的认证流程基于。Spring Security 的认证流程通过。
2025-06-09 15:13:32
1189
原创 第一章 Spring Security快速入门
身份认证(authentication)授权(authorization)防御常见攻击(protection against common attacks)身份认证是验证谁正在访问系统资源,判断用户是否为合法用户。认证用户的常见方式是要求用户输入用户名和密码。用户进行身份认证后,系统会控制谁能访问哪些资源,这个过程叫做授权。用户无法访问没有权限的资源。CSRF。
2025-06-07 19:25:45
781
原创 第4章——springboot自动配置
Spring Boot 框架的两大核心特性可以概括为“启动器”(Starter)和“自动配置”(Autoconfiguration)。运行环境准备阶段引入web启动器最终传递引入了自动配置的jar包自动配置的jar包中有152个自动配置类,到此运行环境准备完毕。运行阶段@EnableAutoConfiguration 启用自动配置,将152个自动配置类全部加载到IoC容器中,然后根据开发场景筛选出必须的自动配置类。自动配置类加载了一堆组件。每个组件需要的数据来自属性类。
2025-06-07 11:35:47
857
原创 Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
深度解析HTTP 406与500错误的本质区别:406是内容协商失败(如客户端请求JSON但服务器返回HTML),常因MIME类型不匹配或Lombok的@Data注解失效导致序列化异常;500是服务器内部崩溃(如空指针或SQL错误)。通过真实案例揭秘Lombok失效的解决之道,提供请求头调试、日志分析、资源优化等实战技巧,快速定位并修复两大高频错误。
2025-06-06 21:09:27
1114
原创 第3章——SSM整合
本文详解Spring Boot整合MyBatis的全流程:从数据库配置、实体类设计、Mapper接口与XML映射,到驼峰命名自动转换。介绍Lombok库通过注解(如@Data、@Builder)简化POJO代码,并实战MyBatis逆向工程插件自动生成Mapper和XML。最后整合SpringMVC实现SSM高效开发,附完整代码与避坑指南。
2025-06-06 20:54:15
885
原创 Java建造者模式(Builder Pattern)详解与实践
本文通过电脑配置与房屋建造案例,详解建造者模式的核心角色(产品/建造者/指挥者)与实现步骤,展示如何优雅解决构造参数过多问题,并分析其在StringBuilder、HTTP请求等Java生态中的实际应用,帮助开发者掌握分步骤构建复杂对象的最佳实践。
2025-06-06 16:15:20
1141
原创 SpringMVC 高阶实战:文件上传下载、异常处理、拦截器与执行流程深度解析
本文详解 SpringMVC 文件上传(Spring6 配置变化/避免覆盖的 UUID 策略)、下载(ResponseEntity 流式响应)、异常处理(自定义跳转与友好提示),深入剖析拦截器执行顺序(源码级流程)及 SpringMVC 核心执行流程(HandlerMapping/适配器/视图渲染),助你掌握企业级请求处理与组件协作机制。
2025-06-06 11:44:27
743
原创 拦截器执行流程——补充
index.htmlok.html当在浏览器中分别访问和浏览器请求到达 Spring MVC 的前端控制器,URL 路径为。/ok。DispatcherServlet 找到中的toOk()okok.html浏览器请求到达 DispatcherServlet,URL 路径为。/indexpreHandleInterceptor1 的preHandleDispatcherServlet 执行中的toIndex()postHandle在控制器方法返回后,但视图渲染前,Interceptor1 的。
2025-06-06 11:02:52
333
原创 Java设计模式之观察者模式详解
观察者模式是一种非常实用的设计模式,它提供了一种对象之间的一对多依赖关系,使得当一个对象的状态发生变化时,所有依赖它的对象都会得到通知并自动更新。Java 提供了内置的支持,使得实现观察者模式变得更加简单。在实际开发中,观察者模式被广泛应用于各种场景,如 GUI 事件处理、消息队列、状态管理等。通过合理使用观察者模式,可以使代码更加灵活、可维护和可扩展。
2025-06-05 15:24:22
1328
原创 Servlet 过滤器
Servlet 过滤器是 Java Web 应用程序中非常重要的组件,它可以对请求和响应进行拦截和处理。本文将详细介绍 Servlet 过滤器的概念、工作原理、使用场景及实现方式。
2025-06-05 10:33:14
485
原创 Java设计模式:责任链模式
/ 抽象处理者类:定义了处理请求的接口和设置下一个处理者的方法// 持有下一个处理者的引用,形成链式结构// 设置下一个处理者// 抽象方法:具体处理者需要实现该方法来处理请求// 具体处理者:小组长,处理1-3天的请假请求@Override// 判断是否在自己的处理范围内System.out.println("小组长批准了 " + request.getName() + " 的 " + request.getDays() + " 天请假");= null) {
2025-06-04 20:47:53
1109
原创 return this;返回的是谁
的作用:它使得方法可以被链式调用,但在构建责任链时,必须谨慎使用,保证每个处理者的successor设置正确。常见错误:直接链式调用会导致前面设置的successor被覆盖,就像例子中最后只有这一条链路。
2025-06-04 20:30:20
661
原创 Java设计模式详解:策略模式(Strategy Pattern)
策略模式是一种灵活且强大的设计模式,能够帮助开发者将算法与业务逻辑解耦,实现动态切换行为。适用场景:需要动态切换算法、避免复杂条件语句、扩展性强的场景。优点:算法独立、可替换、符合开闭原则。缺点:类数量增加、客户端需了解所有策略类。通过合理使用策略模式,可以显著提升代码的灵活性和可维护性。在实际开发中,策略模式常与工厂模式、代理模式等结合使用,以进一步增强系统的扩展性和可配置性。掌握策略模式,将为你的Java开发之路增添一把利器!
2025-06-01 10:27:24
1256
原创 Spring 中 @Value 注解多实例配置方案详解
在 Spring 中创建同一个类的多个实例并使用不同的配置值,有多种实现方式。我们可以根据实际需求选择最合适的方案。关键是要理解每种方案的优缺点和适用场景,灵活运用 Spring 提供的各种特性来解决问题。通过合理的配置,我们可以避免在类中直接使用 @Value 注解硬编码值,提高代码的灵活性和可维护性。这也是 Spring 框架设计的初衷 —— 让对象的创建和配置更加灵活、可扩展。
2025-06-01 09:55:59
516
原创 @PathVariable注解-补充
这段 Java 代码定义了一个 Spring MVC 控制器方法,用于处理 RESTful 风格的 URL 请求。它可以从 URL 路径中提取参数,并将这些参数绑定到方法参数上,然后打印这些参数并返回视图名称。
2025-05-31 16:45:08
397
原创 配置前端控制器
这个配置文件片段是典型的 Spring MVC 框架前端控制器(DispatcherServlet)的配置,位于web.xml中(Servlet 3.0 + 之前的标准 Web 应用配置文件)。
2025-05-31 16:22:54
1094
原创 FactoryBean 接口
FactoryBean 是 Spring 提供的一种强大机制,让您可以将复杂的 Bean 创建逻辑封装在工厂类中,同时保持配置的简洁性。通过实现该接口,Spring 会自动处理工厂 Bean 的注册和调用,无需手动指定。当 Bean 的创建过程复杂(如需要参数校验、依赖注入、动态代理等),直接在 XML 或注解中配置会很繁琐。FactoryBean 允许您将复杂的创建逻辑封装在工厂类中,让 Spring 容器更简洁。的特性,这是 Spring 提供的一种特殊机制,用于创建和管理复杂 Bean。
2025-05-31 11:48:28
576
原创 Java 工厂模式详解
在软件开发中,对象的创建是一个基本操作。但直接在代码中使用 关键字创建对象会导致代码耦合度高、可维护性差。工厂模式(Factory Pattern)作为一种创建型设计模式,能有效解决这些问题。本文将深入探讨 Java 中的工厂模式,通过实例展示其实现方式、优势及适用场景。工厂模式的核心思想是:将对象的创建和使用分离,把对象创建逻辑封装在一个工厂类中,从而提高代码的可维护性和可扩展性。工厂模式主要分为三种类型:简单工厂模式是工厂模式的基础版本,它定义了一个工厂类来创建产品对象。抽象产品 角色具体产品 角色工
2025-05-31 10:47:41
1225
原创 第1章 Redis 概述
而一旦连接就绪,事件分发器 就会感知到,然后获取客户端通过该连接发送的请求,并将由该事件分发器所绑定的这个唯 一的线程来处理。而对具体任务(命令)的处理,仍是由主线程处理。是指,DBMS 中数据更新后,Redis 缓存中的存放的相关数据会被立即清 除,以促使再有对该数据的访问请求到来时,必须先从 DBMS 中查询获取到最新数据,然后 再写入到 Redis。不存在并发读写情况,所以也就不存在执行顺序的不确定 性,不存在线程切换开销,不存在死锁问题,不存在为了数据安全而进行的加锁/解锁 开销。
2025-05-27 18:04:08
922
原创 实时同步缓存,与阶段性同步缓存——补充理解《补充》
实时同步缓存数据库一变,缓存马上删,下次访问必须从数据库拿新数据,再存回缓存(保证数据 “即时准”,适合订单状态、库存这些秒变的数据)。就像外卖 APP 里的订单状态:商家每动一步(接单、配送、完成),APP 马上更新(背后就是 DBMS 改了,Redis 缓存失效,重新存新状态),用户永远看最新的,还不卡。
2025-05-27 17:42:31
1011
原创 ServletContext 接口:Java Web——补充
ServletContext 是 Servlet 规范中的一个接口,由 Web 服务器(如 Tomcat)在启动 Web 应用时创建。全局数据共享:在整个 Web 应用范围内存储和获取数据资源访问:读取 Web 应用内的文件和资源应用配置:获取 Web 应用的初始化参数日志记录:向服务器日志写入信息命名空间支持:通过 JNDI 访问服务器资源ServletContext 是 Java Web 应用的核心组件,它提供了全局数据共享、资源访问和应用配置等重要功能。
2025-05-26 11:59:35
546
原创 ServletConfig 接口:Java Web ——补充
ServletConfig 是 Servlet 规范中的一个接口,它代表了 Servlet 的配置信息。Servlet 容器在初始化 Servlet 时会创建一个 ServletConfig 对象,并通过方法将其传递给 Servlet。Servlet 可以通过这个对象获取自身的初始化参数和 ServletContext 对象。
2025-05-26 11:35:14
495
原创 Java 装饰器模式(Decorator)详解
装饰器模式属于结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这就好比给一个普通的杯子加上杯盖、杯套,让它具备保温、防烫等功能,而杯子本身的基本结构并没有发生变化。在软件开发中,当我们需要在运行时动态地为对象添加职责,并且避免通过继承来扩展功能带来的类层次结构复杂问题时,装饰器模式就派上用场了。装饰器模式主要包含以下几个角色:抽象组件(Component):定义一个抽象接口,规范具体组件和装饰器的行为。。
2025-05-25 20:59:50
715
原创 Java 中的 super 关键字
在 Java 中,如果父类没有定义任何构造方法,编译器会自动为父类生成一个无参构造方法。但如果父类已经定义了有参构造方法,编译器不会自动生成无参构造方法,此时子类必须显式调用父类的有参构造方法。父类情况子类构造方法中是否显式调用super()结果有无参构造方法未显式调用super()编译器自动插入super();(调用父类无参构造)有参构造方法但没有无参构造方法未显式调用super()❌ 编译错误:找不到父类的无参构造方法有参构造方法但没有无参构造方法显式调用super(参数);
2025-05-25 20:20:42
986
JDK 21.0.1 文档简介(jdk-21.0.1-doc)
2025-01-27
软件项目管理-复习材料.docx
2025-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人