当前位置: 首页 > article >正文

Session 的默认失效时间是多长?如何配置和修改?

Session 的默认失效时间是多久如何配置和修改1. 引言停车场的“免费停车券”2. 前置知识Session 是什么它为什么需要“失效”3. 默认失效时间是多少4. Session 超时的工作原理5. 如何配置和修改 Session 超时时间5.1 方式一编程方式动态设置优先级最高5.2 方式二web.xml全局配置中等优先级5.3 方式三容器配置全局默认优先级最低5.4 优先级总结6. 配置对比表7. 常见误区与注意事项8. 集群环境下的特殊注意事项9. 最佳实践如何设置合理的超时时间10. 总结1. 引言停车场的“免费停车券”想象你开车进入一个商场的地下停车场。入口闸机给你一张停车券Session上面写着“免费停车 30 分钟”。如果你在 30 分钟内开车离开闸机自动抬杆放行如果超过 30 分钟就需要额外缴费才能出去。但是如果你在 25 分钟时开车到出口转了一圈又回来停车券上的时间会重置吗答案是会的——只要你“刷一次卡”计时就从此刻重新开始。在 Web 世界中Session 的超时时间就像这张停车券的免费时长。用户在网站上的每次操作请求都会刷新这个计时器如果用户在设定的时间内没有发出任何请求服务器就会认为用户“离开了”于是销毁 Session释放内存资源。本文将带你全面了解 Session 的默认失效时间、配置方式以及背后的原理。2. 前置知识Session 是什么它为什么需要“失效”在深入了解超时时间之前我们先快速回顾一下 Session 的基本概念。Session会话是服务器为每个用户分配的一块私有数据空间用来存储登录状态、购物车、验证码等信息。服务器通过一个唯一的Session ID来识别这块空间属于谁。为什么需要“失效时间”因为用户可能关掉浏览器、离开电脑或者长时间不操作。如果不设置超时这些“僵尸 Session”会一直占用服务器内存最终导致内存耗尽、服务崩溃。设置合理的超时时间是资源回收和用户体验之间的平衡。3. 默认失效时间是多少不同应用服务器的默认值略有差异但业界最常用的是Tomcat它的默认值是30 分钟1800 秒这意味着用户最后一次请求后如果在 30 分钟内没有新的请求Session 就会自动过期释放服务端资源。4. Session 超时的工作原理超时检测由容器如 Tomcat的后台线程负责流程如下每个 Session 记录两个关键时间lastAccessedTime最后一次访问时间和maxInactiveInterval最大空闲间隔即超时时间。后台线程定期扫描所有 Session计算当前时间 - lastAccessedTime。如果差值 maxInactiveInterval则将该 Session 标记为过期触发销毁事件如HttpSessionListener.sessionDestroyed()并从内存中移除。关键点用户每次请求时lastAccessedTime会被更新为当前时间。超时时间是空闲时间不是从创建开始的总存活时间。5. 如何配置和修改 Session 超时时间有三种主流方式按优先级从高到低排列方式配置位置单位优先级适用范围编程方式session.setMaxInactiveInterval()秒最高单个 Session动态设置web.xmlsession-timeout分钟中等整个 Web 应用所有 Session容器配置Tomcat 的conf/web.xml分钟最低容器中所有应用全局默认5.1 方式一编程方式动态设置优先级最高在代码中针对当前 Session单独设置超时时间// 设置当前 Session 的超时时间为 15 分钟注意单位是秒HttpSessionsessionrequest.getSession();session.setMaxInactiveInterval(15*60);// 15 × 60 900 秒// 设置为 0 表示立即过期下次访问时失效// session.setMaxInactiveInterval(0);// 设置为负数表示永不超时慎用// session.setMaxInactiveInterval(-1);适用场景对特定用户如管理员设置更长的超时时间。敏感操作如支付页面要求更短的超时。5.2 方式二web.xml全局配置中等优先级在 Web 应用的WEB-INF/web.xml中添加配置对所有 Session 生效web-app...session-configsession-timeout15/session-timeout!-- 单位分钟 --/session-config.../web-app注意这里的单位是分钟与编程方式的秒不同容易混淆。5.3 方式三容器配置全局默认优先级最低在 Tomcat 的conf/web.xml中修改作为所有应用的默认值session-configsession-timeout30/session-timeout!-- Tomcat 默认 30 分钟 --/session-config如果应用自己的web.xml没有配置则使用此默认值。5.4 优先级总结编程方式session.setMaxInactiveInterval web.xml 容器配置也就是说代码中的设置会覆盖配置文件中的值。6. 配置对比表配置方式位置单位生效范围示例编程方式Java 代码秒单个 Sessionsession.setMaxInactiveInterval(900)web.xmlWEB-INF/web.xml分钟整个应用session-timeout15/session-timeout容器配置Tomcatconf/web.xml分钟所有应用session-timeout30/session-timeout7. 常见误区与注意事项误区正解“修改web.xml会影响已创建的 Session”❌ 错误。只对新创建的 Session 生效现有 Session 沿用创建时的超时值。“setMaxInactiveInterval(0)会立即销毁 Session”❌ 部分正确。设置为 0 后该 Session 在下次访问时会立即失效但不会主动销毁。“负数表示永久有效”✅ 是的但慎用。设置为-1表示永不超时除非主动调用invalidate()否则会一直占用内存极易导致内存泄漏。“单位混淆”⚠️web.xml中是分钟编程方式是秒。常见错误是写成session.setMaxInactiveInterval(15)以为是 15 分钟实际是 15 秒。8. 集群环境下的特殊注意事项在分布式系统多台服务器中如果使用 Redis 等外部存储共享 Session还需要注意确保超时配置一致所有节点、Redis 的 TTL 配置必须统一否则可能出现“A 节点认为 Session 有效Redis 已过期”的不一致。Redis TTL在存储 Session 到 Redis 时应设置与maxInactiveInterval相同的过期时间避免数据残留。// 示例Spring Session Redis 自动处理 TTL无需手动干预spring.session.timeout15m// 单位分钟9. 最佳实践如何设置合理的超时时间场景推荐超时时间理由普通 Web 应用如电商、论坛15-30 分钟平衡用户体验与资源占用管理后台内部系统15-30 分钟安全要求较高不宜过长敏感操作支付、修改密码5-10 分钟防止长时间未操作被他人利用永不超时如自动签到服务❌ 避免必须配合主动销毁否则内存泄漏移动端 / SPA 应用配合 Refresh Token 机制Session 可设短如 15 分钟由 Refresh Token 自动续期10. 总结核心要点说明默认值Tomcat 默认 30 分钟1800 秒配置方式编程 web.xml 容器配置单位web.xml用分钟编程用秒切记原理后台线程扫描lastAccessedTime maxInactiveInterval最佳实践15-30 分钟通用敏感场景更短避免用负数Session 的超时时间是 Web 应用运维的基础配置之一。设置太短用户频繁掉线设置太长内存浪费甚至 OOM。理解其原理和配置方法是写出健壮、高效应用的必修课。

相关文章:

Session 的默认失效时间是多长?如何配置和修改?

Session 的默认失效时间是多久?如何配置和修改?1. 引言:停车场的“免费停车券”2. 前置知识:Session 是什么?它为什么需要“失效”?3. 默认失效时间是多少?4. Session 超时的工作原理5. 如何配置…...

Chrome DevTools MCP:让 AI 编码助手拥有“浏览器之眼“

1.1 背景:AI 编程的"盲区" 在 AI 辅助编程的时代,我们已经习惯了让 AI 帮我们生成代码、修复 Bug、甚至重构项目。但长期以来,AI 编码助手有一个根本性的局限——它们只能"写"代码,却看不到代码在浏览器中实…...

Druid监控界面安全加固实战:从暴露风险到生产级防护

1. Druid监控界面暴露风险全景扫描 上周帮客户做安全审计时,发现他们的订单系统监控页面居然能直接通过公网IP访问,打开/druid/index.html就能看到所有SQL执行记录和会话信息。这种场景太典型了——很多团队在开发阶段为了方便调试,把Druid监…...

Cookie 和 Session 分别存储在客户端还是服务端?

从“存包凭条”到“后台存包柜”:Cookie 与 Session 的存储位置深度剖析1. 引言:超市存包处的“凭条”与“存包柜”2. 前置知识:HTTP 的“健忘症”3. Cookie:客户端的“小凭条”3.1 是什么?3.2 解决什么问题&#xff1…...

SHA-3:从海绵结构到抗量子密码学的基石

1. SHA-3的诞生背景与核心价值 2004年,密码学界发现SHA-1存在理论漏洞,这直接推动了NIST启动新一代哈希算法竞赛。经过5年激烈角逐,Keccak团队提出的海绵结构方案最终胜出。与传统哈希算法不同,SHA-3不是对SHA-2的简单升级&#x…...

OpenClaw本地搜索增强:GLM-4.7-Flash智能文件检索系统

OpenClaw本地搜索增强:GLM-4.7-Flash智能文件检索系统 1. 为什么需要智能文件检索 作为一个长期被杂乱文件困扰的技术写作者,我经常陷入"明明记得存过某个文档却死活找不到"的困境。传统的文件名搜索就像在黑暗房间里用手电筒找东西——必须…...

告别手动配置!CCSv9.3一键导入MSP430F5529LP驱动库的两种高效方法

CCSv9.3高效配置指南:MSP430F5529LP驱动库的自动化管理方案 每次新建CCS工程都要重复添加库文件路径?这种低效操作早该被淘汰了。作为TI官方推荐的开发环境,Code Composer Studio其实隐藏着许多能大幅提升工作效率的高级功能。本文将彻底改变…...

SEO_掌握这几个核心技巧让你的SEO事半功倍

<h2>SEO核心技巧&#xff1a;让你的网站事半功倍的秘诀</h2> <p>在当今数字化时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为了网站运营者提升网站流量和品牌知名度的关键。SEO 的复杂性常常让新手感到困惑&#xff0c;不知道从哪里入手。…...

告别激光雷达?手把手教你用CRN低成本实现BEV 3D感知(附PyTorch代码)

低成本BEV 3D感知实战&#xff1a;用CRN实现相机-雷达融合&#xff08;附完整PyTorch代码&#xff09; 在自动驾驶和机器人领域&#xff0c;3D环境感知一直是核心技术瓶颈。传统激光雷达方案虽精度高&#xff0c;但成本动辄数万元&#xff0c;且受天气影响显著。我们团队经过半…...

电动循迹小车坡道行驶系统设计与实现

1. 坡道行驶电动小车设计解析1.1 系统概述本设计实现了一款具备坡道行驶能力的电动循迹小车系统&#xff0c;采用差速转向方案完成固定路径的循迹功能。系统核心功能包括&#xff1a;四路光电传感器黑线检测差速转向控制算法可编程坡道动力补偿自动停车功能2. 硬件设计2.1 主控…...

鸽姆智库(GG3M Think Tank)核心优势 |Core Strengths of GG3M Think Tank

鸽姆智库&#xff08;GG3M Think Tank&#xff09;核心优势鸽姆智库&#xff08;GG3M Think Tank&#xff09;的核心优势体现在理论原创性、技术架构创新、东方智慧深度融入与全场景工程落地能力四大维度&#xff0c;构成全球首个以东方哲学为根基的“文明级操作系统”&#xf…...

AI_NovelGenerator:如何在7天内完成传统写作需要3个月的长篇小说创作

AI_NovelGenerator&#xff1a;如何在7天内完成传统写作需要3个月的长篇小说创作 【免费下载链接】AI_NovelGenerator 使用ai生成多章节的长篇小说&#xff0c;自动衔接上下文、伏笔 项目地址: https://gitcode.com/GitHub_Trending/ai/AI_NovelGenerator 问题诊断&…...

2025 code-server 远程开发完全指南:7个技巧让你随时随地高效编码

2025 code-server 远程开发完全指南&#xff1a;7个技巧让你随时随地高效编码 【免费下载链接】code-server VS Code in the browser 项目地址: https://gitcode.com/GitHub_Trending/co/code-server 你是否曾因设备限制无法随时编写代码&#xff1f;是否希望在平板或低…...

如何做好网站SEO关键词优化_如何快速提升网站在 Google 上的排名

<h3 id"seo_google">如何做好网站SEO关键词优化_如何快速提升网站在 Google 上的排名</h3> <p>在当今数字化时代&#xff0c;网站的成功很大程度上取决于其在搜索引擎上的表现。搜索引擎优化&#xff08;SEO&#xff09;是一个复杂而又极其重要的领…...

GG3M 元模型完整详解:从东方哲学数学化到文明级智慧操作系统

GG3M 元模型完整详解&#xff1a;从东方哲学数学化到文明级智慧操作系统摘要&#xff1a; GG3M 是全球首个以贾子理论&#xff08;Kucius Theory&#xff09;为核心、定位文明级智慧操作系统的 AGI 项目。其元模型&#xff08;Meta-Model&#xff09;以 3M 三层架构&#xff08…...

DownKyi:解决B站视频下载痛点的创新方案——从低效操作到高效管理的完整实践

DownKyi&#xff1a;解决B站视频下载痛点的创新方案——从低效操作到高效管理的完整实践 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频…...

ollama-QwQ-32B提示工程:提升OpenClaw操作准确率的10个模板

ollama-QwQ-32B提示工程&#xff1a;提升OpenClaw操作准确率的10个模板 1. 为什么需要专门优化OpenClaw的提示词&#xff1f; 第一次用OpenClaw执行文件整理任务时&#xff0c;我遭遇了灾难性结果——AI误将整个Downloads文件夹按修改日期排序后&#xff0c;把300多个文件全部…...

OpenClaw镜像体验方案:星图平台GLM-4.7-Flash沙盒环境快速验证

OpenClaw镜像体验方案&#xff1a;星图平台GLM-4.7-Flash沙盒环境快速验证 1. 为什么选择云端沙盒验证OpenClaw 去年冬天&#xff0c;当我第一次尝试在本地MacBook上部署OpenClaw时&#xff0c;整整浪费了一个周末的时间。从Node.js版本冲突到Python依赖缺失&#xff0c;再到…...

系统资源全景掌控:TaskExplorer如何重塑进程管理体验

系统资源全景掌控&#xff1a;TaskExplorer如何重塑进程管理体验 【免费下载链接】TaskExplorer Power full Task Manager 项目地址: https://gitcode.com/GitHub_Trending/ta/TaskExplorer 在数字化办公环境中&#xff0c;系统卡顿、资源占用异常、进程无响应等问题时常…...

产品经理的‘外挂’:用DeepSeek+R1和墨刀AI,5分钟搞定智能对话APP的需求文档与原型图

产品经理的‘外挂’&#xff1a;用DeepSeekR1和墨刀AI&#xff0c;5分钟搞定智能对话APP的需求文档与原型图 在快节奏的互联网产品开发中&#xff0c;产品经理常常面临时间紧、任务重的挑战。从市场调研到需求分析&#xff0c;从文档撰写到原型设计&#xff0c;每个环节都需要投…...

轻量级免安装跨设备:浏览器插件如何重塑微信使用体验

轻量级免安装跨设备&#xff1a;浏览器插件如何重塑微信使用体验 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 在数字化办公日益普及的今天&#xf…...

ViGEmBus虚拟游戏手柄驱动:重构Windows输入控制生态的核心引擎

ViGEmBus虚拟游戏手柄驱动&#xff1a;重构Windows输入控制生态的核心引擎 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 一、价值定位&#xff1a;虚拟设备…...

WindowsCleaner:智能化解救C盘空间危机的开源解决方案

WindowsCleaner&#xff1a;智能化解救C盘空间危机的开源解决方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 一、痛点剖析&#xff1a;C盘空间管理的深层困境…...

BepInEx Linux环境实战指南:从部署到故障解决

BepInEx Linux环境实战指南&#xff1a;从部署到故障解决 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 引言&#xff1a;Linux玩家的Mod困境 作为Linux平台的Unity游戏玩家&…...

NumPy 应用实例:用户行为数据分析(归一化和标准化处理)

在用户行为分析中&#xff0c;常常需要同时处理多个特征&#xff0c;例如访问次数、消费金额、停留时长、收藏数量等。这些特征虽然都能反映用户活跃程度或消费倾向&#xff0c;但它们的单位、量纲和取值范围通常并不一致。如果直接将原始数据用于综合评分或相似度计算&#xf…...

AutoJS与按键精灵实战:微信抢红包脚本开发指南(附完整代码)

1. 微信抢红包脚本开发入门指南 最近几年&#xff0c;手机自动化工具越来越受到开发者欢迎&#xff0c;特别是像AutoJS和按键精灵这样的工具&#xff0c;能够帮助我们完成很多重复性的手机操作。今天我要分享的是如何用这些工具开发一个微信抢红包脚本&#xff0c;这个需求在过…...

别再手动组合特征了!用GBDT+LR搞定CTR预估,附Python实战代码与调参心得

GBDTLR&#xff1a;自动化特征工程的CTR预估实战指南 在推荐系统和广告投放领域&#xff0c;点击率&#xff08;CTR&#xff09;预估的准确性直接影响着平台的核心商业指标。传统手动特征工程方法在面对高维稀疏特征时往往力不从心&#xff0c;而GBDTLR的组合策略为我们提供了一…...

从Vaihingen数据集到训练样本:高分辨率遥感影像语义分割全流程实战

1. 初识Vaihingen数据集&#xff1a;遥感语义分割的黄金标准 第一次接触Vaihingen数据集时&#xff0c;我被它5厘米的超高分辨率震撼到了。这个由ISPRS提供的基准数据集&#xff0c;虽然只包含38张60006000像素的影像&#xff0c;但每张都清晰地展现了德国小镇Vaihingen的街道、…...

让经典Flash游戏重获新生:CefFlashBrowser终极使用指南

让经典Flash游戏重获新生&#xff1a;CefFlashBrowser终极使用指南 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你是否还记得那些曾经在4399、7k7k等网站上玩过的经典Flash游戏&#x…...

原神抽卡记录导出工具:一键备份分析你的抽卡历史数据

原神抽卡记录导出工具&#xff1a;一键备份分析你的抽卡历史数据 【免费下载链接】genshin-wish-export biuuu/genshin-wish-export - 一个使用Electron制作的原神祈愿记录导出工具&#xff0c;它可以通过读取游戏日志或代理模式获取访问游戏祈愿记录API所需的authKey。 项目…...