Session的生命周期

详解Session的生命周期 在进行WEB Application开发的时候,很多程序员在理解Session的时候,常常会被误导,错误的认为:一个浏览器只有一个Session, 浏览器关闭Session就消失了。其实这是不正确的。(很多程序员是去baidu,或者google一下,只解决了当下的问题,但是对于更深次的问题没有仔细思考!) 要了解Session首先要知道一个概念:Session的销毁只有两种情况: 阅读详情

转自:http://www.cnblogs.com/binger/archive/2013/03/19/2970171.html

Session的生命周期

  以前在学习的时候没怎么注意,今天又回过头来仔细研究研究了一下Session的生命周期。

  Session存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。

  Session什么时候失效?

  1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。

  2. 调用Session的invalidate方法。

  Session对浏览器的要求:

  虽然Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session依据该Cookie来识别是否为同一用户。

  该Cookie为服务器自动生成的,它的maxAge属性一般为-1,表示仅当前浏览器内有效,并且各浏览器窗口间不共享,关闭浏览器就会失效。因此同一机器的两个浏览器窗口访问服务器时,会生成两个不同的Session。但是由浏览器窗口内的链接、脚本等打开的新窗口(也就是说不是双击桌面浏览器图标等打开的窗口)除外。这类子窗口会共享父窗口的Cookie,因此会共享一个Session。

  注意:新开的浏览器窗口会生成新的Session,但子窗口除外。子窗口会共用父窗口的Session。例如,在链接上右击,在弹出的快捷菜单中选择"在新窗口中打开"时,子窗口便可以访问父窗口的Session。

如果客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?例如,绝大多数的手机浏览器都不支持Cookie。Java Web提供了另一种解决方案:URL地址重写。

  URL地址重写是对客户端不支持Cookie的解决方案。URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。HttpServletResponse类提供了encodeURL(String url)实现URL地址重写,该方法会自动判断客户端是否支持Cookie。如果客户端支持Cookie,会将URL原封不动地输出来。如果客户端不支持Cookie,则会将用户Session的id重写到URL中。

  注意:TOMCAT判断客户端浏览器是否支持Cookie的依据是请求中是否含有Cookie。尽管客户端可能会支持Cookie,但是由于第一次请求时不会携带任何Cookie(因为并无任何Cookie可以携带),URL地址重写后的地址中仍然会带有jsessionid。当第二次访问时服务器已经在浏览器中写入Cookie了,因此URL地址重写后的地址中就不会带有jsessionid了。

零基础玩转IndexTTS2:5分钟搭建个人语音克隆工具(支持B站同款情感语音) 本文详细介绍了如何零基础使用IndexTTS2快速搭建个人语音克隆工具,支持B站同款情感语音。IndexTTS2作为自回归零样本TTS系统,突破传统技术限制,实现精准时长控制和丰富情感表达。通过HuggingFace在线演示,用户可轻松克隆音色并调节情感参数,适用于自媒体配音、有声书朗读等场景。 阅读详情

相关推荐

matlab球面投影(二)

matlab球面投影,想做一个全景相机,不知道,要做成啥样,于是在MATLAB先仿真一下,看下是个啥样子 百度别人做的,复制下面的代码到MATLAB的命令串口下,,网上找了张全景图,可以是bmp,jpg,改程序就可以了 回车运行就可以看到结果。 复制下面代码时,下面的中文注释记得删除,MATLAB是会报错的, close all; clear all; clc [x,y,z]=sphere(50); A=imread('a.JPG'); //名字是自己命名的,记得改 B=warp(x,y,-z,

rjszcb的博客 3161

Spark 2.0系列之SparkSession详解

用Spark的各项功能,用户不但可以使用DataFrame和Dataset的各种API,学习Spark的难度也会大大降低。本文就SparkSession在Spark2 0中的功能和地位加以阐释。 Spark2.0中引入了SparkSession的概念,它为用户提供了一个统一的切入点来使用Spark的各项功能,用户不但可以使用DataFrame和Dataset的各种API,学习Sp

4万+

从ACTF2020看文件上传漏洞:你以为改后缀就完事了?这些坑我都帮你踩过了

本文通过ACTF2020的Upload题目深入剖析文件上传漏洞的复杂性和防御策略。文章揭示了常见误区,如仅修改文件后缀的局限性,并详细解析了绕过技巧和高级防御机制。从开发角度提供了构建安全上传功能的实用建议,帮助读者全面理解文件上传漏洞的本质与防护方法。

weixin_29278805的博客 247

学习Spark的数据生命周期管理技术

1.背景介绍 数据生命周期管理是数据科学家和数据工程师在处理大规模数据时面临的重要挑战。Apache Spark是一个开源的大数据处理框架,它可以处理批量数据和流式数据,并提供了一个易用的API来进行数据处理和分析。在本文中,我们将探讨如何学习Spark的数据生命周期管理技术,以便更有效地处理和分析大规模数据。 1. 背景介绍 数据生命周期管理是指从数据的收集、存储、处理、分析到数据的使用和...

AI天才研究院 1232

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

KV Cache 详解:新手也能理解的 LLM 推理加速技巧

(Autoregressive)生成的,即每次生成一个 token,然后将其作为输入继续生成下一个 token。:如果序列太长,超过了 KV Cache 的存储限制,就需要丢弃最早的 tokens(类似滑动窗口)。时,每次只会生成一个新 token,然后再把这个 token 作为输入继续生成下一个 token。,只缓存计算过的 K,VK, V,每次只计算新 token 的 K,VK, V,从而提升推理效率。:如果输入的 prompt 发生变化,之前的 KV Cache 不能复用,必须重新计算。

Harry的博客 7359

问题整理:ZABBIX4.0登录界面出现错误 SQL statement execution has failed “INSERT INTO sessions (sessionid,userid,..

登录zabbix4.0界面,出现报错:SQL statement execution has failed "INSERT INTO sessions (sessionid,userid,lastaccess,status) VALUES ('6d1a0523bd8cd53179fcdfc3c397d343','1','1608889582','0')". 我遇到的情况是服务器突然断电...

CN_Eden 3138

YOLO26-seg分割优化:轻量化卷积魔改 | 新的partial convolution(PConv)结合C3k2 | CVPR2023

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 151

JavaWeb-022-HttpSession的生命周期

Session 的创建和销毁1). 默认情况下, 第一次访问一个 WEB 应用的一个 JSP 页面时, 该页面都必须有一个和这个请求相关联的 Session 对象. 因为 page 指定的 session 属性默认为 true 2). 若把 session 属性改为 false, JSP 页面不会要求一定有一个 Session 对象和当前的 JSP 页面相关联,所以若第一次访问当前 WEB 应

qq_33605778的博客 338

机器人中的数值优化(一)—— 数学优化、凸集合与凸函数

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例。

慕羽★的博客 2521

Python爬虫教程:如何爬取多平台电商商品信息(价格、评价、库存)

本文介绍了如何编写一个跨平台电商商品爬虫,爬取多个平台的商品信息,包括商品名称、价格、评价等数据。通过Python的爬虫库(如requestsSelenium)和数据处理库(如pandasmatplotlib)的结合,我们可以高效地获取和分析电商平台上的商品信息。

2201_76125261的博客 917

java session 生命周期_java之hibernate之session中对象的生命周期

1. session是用来执行对象的crud操作,并且session是对象事务工厂。session是线程级别的,所以生命周期比较短。2.session中对象的生命周期图:3.session中对象的状态瞬时状态持久状态游离状态4.对象的生命周期一:new---->瞬时状态----->save------>持久状态----->close----->游离状态public c...

weixin_42500380的博客 514

攻克反光难题!YOLOv9工业缺陷检测实战:高反光件、微小划痕精准识别(附抗反光代码+产线数据)

文章摘要:本文针对不锈钢、铝合金等高反光工业件的缺陷检测难题,提出了一套“硬件抗反光+YOLOv9小目标增强”的解决方案。通过分析反光干扰(镜面/漫反射)和微小划痕(0.1mm级)两大核心问题,详细介绍了500万像素工业相机+偏振光源的硬件配置方案,以及基于偏振图像融合和超分辨率放大的预处理方法。最终实现误检率1.2%、微小划痕检出率99.3%的工业级检测效果,并提供了可落地的代码实现和车间实测数据。(148字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1041

Session生命周期

​​​session的生命周期分为创建session与销毁session 创建session:是指当用户第一次访问jsp页面时,因为jsp页面内置了session对象或Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session。 只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。 第一次是指:浏览器访问服务器时,不带值为sessionId的cookie 销毁

m0_63411853的博客 7359

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

session的生命周期

Session的生命周期 session存储在服务器端,session在用户第一次访问时创建,访问jsp、servlet等程序时才会创建Session,只访问html、image等静态资源并不会创建,可调用request.getSession(true)强制生成Session。 服务器会把长时间没有活动的Session从内存中清除,tomcat中session的默认失效时间为30分钟,可调用调...

LuckFairyLuckBaby的博客 7305

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Session 的生命周期

初学JSP中九大内置对象,了解到session对象,看到很多关于session对象的生命周期的讨论。想必这一定是一个重要的知识点。在今后的学习和工作中,一定会有极其重要的地位。为了便于以后的深入了解和回顾,经过老师的讲解和网上资料的补充,特在此整理一下当前关于session对象的生命周期的理解。有什么错误,望各位大神不吝,积极指正和补充。        Web中的Session指的就是用户在浏览

u013262079的博客 508

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java session 生命周期_session的生命周期是什么

Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。推荐课程:Java教程。Session的生命周期Session存储在服务器的内存中(为了高速存取)。Session何时生效Sessinon在用户访问第一次访问服务器时创建,...

weixin_31817039的博客 453

java中session的生命周期_session的生命周期简述,你了解session吗?

了解java语言开发的小伙伴们势必也知道session,还记得session的生命周期吗?暂时想不起来也没关系,有兴趣了解的朋友们可以跟小编一起来了解一下。想要了解session那么就一定要知道这样一个概念:session的销毁只有2种情况:1、session调用了session.invalidate()方法。2、前后两次请求超出了session指定的生命周期时间。在这当中,session的生命周...

weixin_36268722的博客 1245

session设置生命周期

dingjingchao的博客 2686

Session对象及生命周期

Session对象

qq_52146944的博客 732

session生命周期

session生命周期 session保存在服务端,可以是内存、数据库、文件或者session集群中。 cookie保存在客户端。 1 创建 下面两种情况可以创建session,但不一定会创建 1.1 访问jsp页面 1.2 访问servlet时调用request.getSession() 或 request.getSession(true) 2 活动 2.1 setAttribute设置属性值 2.2 getAttribute获取属性值 … … 3 销毁 注意:关闭浏览器并不能删除session

zy1314567的博客 276

设置SESSION的生命周期

这个blog上面的内容,通常都是记录困扰了我很久的问题,就像今天这个问题,反复折腾了一下午。我发现,其实nio真是一个很耐心很有水准的老师,通常,我们会在群里说他是一个web开发的速查字典,几乎无所不通了。 今天我所要想解决的问题,简单来说,就是设置SESSION的生命周期问题,其实问题是很简单了,只是不知道为什么,我用session_cache_expire(12*60);关掉浏览器后竟然

kurt1988的专栏 1485
上一篇: java double 相加
下一篇: 【备忘】linux 命令不可执行
staticabc
博客等级 码龄16年 6粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值