自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Nginx为何拦截带下划线的请求头?

🔍 Zuul请求头下划线问题解析 问题:通过Zuul转发含auth_user_id请求头时,后端无法接收,但改为authuserid或auth-user-id则正常。 原因: HTTP协议允许头字段含下划线,但Nginx默认会丢弃带_的请求头(早期CGI规范的安全限制)。 ✅ 解决方案: 推荐:改用连字符命名(如auth-user-id),兼容性最佳,无需额外配置。 若必须用下划线,可在Nginx中配置underscores_in_headers on;(需权衡安全风险)。 📌 最佳实践: 统一使用ke

2025-08-06 10:14:06 606

原创 IntelliJ IDEA配置Tomcat UTF-8终极指南

摘要:解决IntelliJIDEA中Tomcat乱码问题需多层级配置。在VM选项添加-Dfile.encoding=UTF-8;修改Tomcat的server.xml配置URIEncoding="UTF-8";web应用层需设置字符编码过滤器和JSP页面声明。配置后重启服务,通过响应头验证UTF-8编码是否生效。若仍存在乱码需检查代码中的字符转换逻辑

2025-07-01 20:04:01 341

原创 HTTP状态码分类与使用指南

HTTP状态码分类与使用指南 HTTP状态码分为五类:1xx(临时响应)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。

2025-07-01 14:54:54 768

原创 优雅处理Java集合空指针的3种方案

针对Java开发中常见的集合空指针问题,提出三种优化方案:1)使用Apache Commons Collections的CollectionUtils工具类,通过isNotEmpty判断或emptyIfNull方法处理空集合;2)采用Optional.ofNullable配合字符串分割,实现健壮的字符串转List操作;3)结合Java8的Optional和Stream API,对可能为null的集合进行安全过滤操作。这些方案有效提升了代码的健壮性,简化了空值处理逻辑,适用于各类集合操作场景。

2025-07-01 14:51:51 134

原创 避免返回值:3种变量状态共享方案

文章摘要:本文介绍了三种在Java中通过引用类型包装基本计数变量的方法:使用数组、AtomicInteger和自定义包装类。数组方案简单但类型不安全;AtomicInteger提供线程安全操作,适合并发场景;自定义类扩展性更强。所有方案都通过引用传递机制,使方法内修改直接影响原始对象状态。建议根据实际需求选择,并发环境优先考虑AtomicInteger。

2025-07-01 14:49:30 147

原创 Web工程路径:绝对路径优先原则

Web开发中路径处理的核心要点:1)优先使用绝对路径避免相对路径的不确定性;2)区分浏览器和服务器对"/"的不同解析规则(浏览器解析为根URL,服务器解析为工程路径);3)注意结尾斜杠的语义差异(/表示目录);4)重定向需包含工程路径;5)使用ServletContext.getContextPath()动态生成路径。开发时应遵循:服务器端用/开头结合工程路径,客户端用JSP动态标签,确保路径准确性。

2025-06-23 15:49:44 414

原创 Vue渲染技巧:v-if与v-show对比

Vue中v-if和v-show的区别:v-if在条件为false时不会渲染元素,适合不频繁切换的场景;v-show通过CSS隐藏元素但仍保留在DOM中,适合频繁切换的情况。v-if可以和v-else-if、v-else配合实现多条件分支。性能优化建议:频繁切换用v-show,静态内容用v-if。注意v-for优先级高于v-if,建议分开使用。这两种指令可根据实际场景选择使用,以达到最佳性能表现。

2025-06-23 14:53:55 147

原创 Git三区一库核心解析

摘要:Git版本控制系统包含四个核心概念:工作区是直接修改代码的本地目录;暂存区临时存储准备提交的变更;本地仓库永久保存项目历史记录;远程仓库用于团队协作共享代码。开发者通过git add将修改加入暂存区,用git commit提交到本地仓库,再通过git push/pull与远程仓库同步更新。(148字)

2025-06-23 11:45:25 281

原创 突破Arrays.asList限制的2种高效方案

Arrays.asList()返回固定长度List,可通过两种方案解决其修改限制:1)使用new ArrayList<>(Arrays.asList())创建独立可修改的List;2)Java8+用Arrays.stream().collect()转换。需注意原始数组与asList()结果相互影响,修改包装List不影响原数组,也可用Collections.unmodifiableList()主动创建不可变List。

2025-06-23 11:38:05 248

原创 MyBatis中#与$的终极对决

摘要:MyBatis中#和$均用于动态参数替换。#采用预编译方式(替换为?),能防SQL注入,适用于条件值等常规场景;$直接拼接参数值,存在注入风险,仅用于动态表名/列名等特殊需求。#可缓存提升性能,$每次生成新SQL。建议优先使用#,$需严格校验参数安全性。(148字)

2025-06-23 11:35:38 179

原创 MybatisPlus更新踩坑:int变Integer轻松解决

摘要:MybatisPlus更新int类型字段时默认0值会被纳入SQL,导致非预期更新。建议将int改为Integer包装类型,通过null值区分未赋值情况。优化方案包括:1)使用@TableField(updateStrategy=NOT_NULL)注解;2)在XML中添加非空条件判断;3)全局配置更新策略为not_null。这些方法可有效避免基本类型默认值引发的更新问题。(135字)

2025-06-20 11:43:29 250

原创 基于 SpringBoot 的拍卖系统设计与实现

支持修改,支持定制!支持修改,支持定制!支持修改,支持定制!

2025-06-20 11:19:42 763

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除