Session,作为我们离不开的后台的技术,它的出现主要是为了解决 Http 协议的无状态特点,用于解决用户状态的存储问题,而往往对于存储来说都会涉及到一个时间问题,下面我们来看看它的销毁方式到底有哪些。
销毁的方式 默认时间到期 自己设定到期时间 立刻失效 关闭浏览器 关闭服务器 案例实操 默认时间到期 当客户端第一次请求 servlet 并且操作 session 时,session 对象生成,以 Tomcat 为例,Tomcat 中 session 默认的存活时间为 30min,即你不操作界面的时间,一旦有操作,session 会重新计时。那么 session 的默认时间可以改么?答案是肯定的。可以在 Tomcat 中的 web.xml 文件中进行修改。如下图:
自己设定到期时间 当然除了以上的修改方式外,我们也可以在程序中自己设定 session 的生命周期,通过 session.setMaxInactiveInterval(int); 来设定 session 的最大不活动时间,单位为秒。
HttpSession session = req.getSession(); session.setMaxInactiveInterval(5); 1 2 当然我们也可以通过 getMaxInactiveInterval(); 方法来查看当前 Session 对象的最大不活动时间。
立刻失效 或者我们也可以通过 session.invalidate(); 方法让 session 立刻失效。
session.invalidate(); 1 关闭浏览器 session 的底层依赖 cookie 实现,因为不同用户访问服务器要判别到底是使用哪个 session,所以当用户第一次访问服务器的时候往往会把一个 session id 通过 cookie 存储到用户端,并且该 cookie 的有效时间为关闭浏览器,从而 session 在浏览器关闭时也相当于失效了(因为没有 session id 再与之对应)。如下图,关闭后再打开,重新给浏览器分配了个 session id。
image-20200708195027943
需要注意的是这里只是 cookie 失效了,你再访问相当于服务器把你当成了新用户,又给你创建了一个 session,并没有把之前的 session 对象销毁。
关闭服务器 当非正常关闭服务器时,session 销毁;当正常关闭服务器时,session 将被序列化到磁盘上,在工作空间 work 目录下的 SESSION.ser 文件中,如果对象被保存在了 session 中,服务器在关闭时要把对象序列化到硬盘,这个对象就必须实现 Serializable 接口,下次启动服务时,自动加载到内存。如下图,正常关闭后可以看到文件夹中多了一个 SESSIONS.ser 文件,再次启动服务器则文件消失。
扩展~Cookie的销毁
从图中除了看到 Cookie 的名称和内容外,我们还需要关心一个信息,到期时间,到期时间用来指定该 cookie 何时失效。默认为当前浏览器关闭即失效。我们可以手动设定 cookie 的有效时间(通过到期时间计算),通过 setMaxAge(int expiry); 方法设定 cookie 的最大有效时间,以秒为单位。
大于 0 的整数,表示存储的秒数;若为负数,则表示不存储该 cookie;若为 0,则删除该 cookie。 负整数:cookie 的 maxAge 属性的默认值就是 -1,表示只在浏览器内存中存活,一旦关闭浏览器窗口,那么 cookie 就会消失。 正整数:表示 cookie 对象可存活指定的秒数。当生命大于 0 时,浏览器会把 Cookie 保存到硬盘上,就算关闭浏览器,就算重启客户端电脑,cookie 也会存活相应的时间。 零:cookie 生命等于 0 是一个特殊的值,它表示 cookie 被作废!也就是说,如果原来浏览器已经保存了这个 Cookie,那么可以通过 Cookie 的 setMaxAge(0) 来删除这个 Cookie。 无论是在浏览器内存中,还是在客户端硬盘上都会删除这个 Cookie。 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示; 全新的 KaTeX数学公式 语法; 增加了支持甘特图的mermaid语法1 功能; 增加了 多屏幕编辑 Markdown文章功能; 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间; 增加了 检查列表 功能。 功能快捷键 撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:Ctrl/Command + Shift + H 无序列表:Ctrl/Command + Shift + U 有序列表:Ctrl/Command + Shift + O 检查列表:Ctrl/Command + Shift + C 插入代码:Ctrl/Command + Shift + K 插入链接:Ctrl/Command + Shift + L 插入图片:Ctrl/Command + Shift + G 查找:Ctrl/Command + F 替换:Ctrl/Command + G
合理的创建标题,有助于目录的生成 直接输入1次#,并按下space后,将生成1级标题。 输入2次#,并按下space后,将生成2级标题。 以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。
如何改变文本的样式 强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片 链接: link.
图片: Alt
带尺寸的图片: Alt
居中的图片: Alt
居中并且带尺寸的图片: Alt
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.
// An highlighted block var foo = 'bar'; 1 2 生成一个适合你的列表 项目 项目 项目 项目1 项目2 项目3 计划任务 完成任务 创建一个表格 一个简单的表格是这么创建的:
项目 Value 电脑 12 导管 $1 设定内容居中、居左、居右 使用:---------:居中 使用:----------居左 使用----------:居右
第一列 第二列 第三列 第一列文本居中 第二列文本居右 第三列文本居左 SmartyPants SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE ASCII HTML Single backticks 'Isn't this fun?' ‘Isn’t this fun?’ Quotes "Isn't this fun?" “Isn’t this fun?” Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash 创建一个自定义列表 Markdown Text-to- HTML conversion tool Authors John Luke 如何创建一个注脚 一个具有注脚的文本。2
注释也是必不可少的 Markdown将文本转换为 HTML。
KaTeX数学公式 您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt,. Γ(z)=∫ 0 ∞ t z−1 e −t dt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章 Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid 关于 甘特图 语法,参考 这儿, UML 图表 可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五 这将产生一个流程图。:
链接 长方形 圆 圆角长方形 菱形 关于 Mermaid 语法,参考 这儿, FLowchart流程图 我们依旧会支持flowchart的流程图:
开始 我的操作 确认? 结束 yes no 关于 Flowchart流程图 语法,参考 这儿. 导出与导入 导出 如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入 如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入, 继续你的创作。
mermaid语法说明 ↩︎
注脚的解释 ↩︎
点赞
评论
分享
收藏
打赏
举报 session的销毁方式 kxj19980524的博客 4100 1.直接关闭服务器就销毁了,因为session是存活在服务器端 2.session默认是等待30分钟自动销毁 3.给它设置一个过期时间 session.setMaxInactiveInterval(5); //5秒后自动销毁 4.立即销毁 session.invalidate(); 5.web.xml文件配置 <session-config&... Session销毁方式 weixin_50847753的博客 27 问题:Session的销毁方式到底有哪些? Session,作为我们离不开的后台的技术,它的出现主要是为了解决 Http 协议的无状态特点,用于解决用户状态的存储问题,而往往对于存储来说都会涉及到一个时间问题,下面我们来看看它的销毁方式到底有哪些。 销毁的方式 默认时间到期 自己设定到期时间 立刻失效 关闭浏览器 关闭服务器 案例实操 默认时间到期 当客户端第一次请求 servlet 并且操作 session 时,session 对象生成,以 Tomcat 为例,Tomcat 中 session 默认的
优质评论可以帮助作者获得更高权重 Session的销毁方式到底有哪些? dirft_din的博客 131 Session,作为我们离不开的后台的技术,它的出现主要是为了解决 Http 协议的无状态特点,用于解决用户状态的存储问题,而往往对于存储来说都会涉及到一个时间问题,下面我们来看看它的销毁方式到底有哪些。 销毁的方式 默认时间到期 自己设定到期时间 立刻失效 关闭浏览器 关闭服务器 案例实操 默认时间到期 当客户端第一次请求 servlet 并且操作 session 时,session 对象生成,以 Tomcat 为例,Tomcat 中 session 默认的存活时间为 30min,即你不操作界面的时间 PHP session的销毁是三种方式 qq_41921511的博客 1831 <?php /* session的销毁 */ @header('content-type:text/html;charset=utf-8'); session_start(); _SESSION['username']; echo "<br>"; //方法... 哪几种情况可以销毁session(一般有3种) - CSDN博客 11-29 1、超时(一般服务器设置超时时间为30分钟)服务器会销毁session; 2、点击控制台的红色按钮异常关闭服务器要销毁session 3、手动调用session的invalidate方法session.... Session的创建和销毁_写博客只为学习_session销毁方法 12-2 其中Session的生命周期时间可以在web.xml配置。默认30分钟 在web.xml可以做如下配置: 5 </session-config... Java Session获取/销毁 Yangll29的博客 2050 Session会话机制,它是保存在服务器里面的,就是当我们进入一个浏览器,浏览器会 自动给我们创建一个session保存用户的信息,当关闭浏览器的时候,session就销毁 了,Session在web项目中是经常用到的。下面是session的用法。 Session在web项目中的登录是基本都用上的,那么就以账号登录为例: 代码只是展示了最里面判断登录成功并保存数据到session的 //获取ses... Session有哪几种销毁方式? m0_51071144的博客 88 问题:Session的销毁方式到底有哪些? FU 如需要跟多资料请点击下方图片⬇(扫码加好友→备注66,不备注拒绝添加哦) Session,作为我们离不开的后台的技术,它的出现主要是为了解决 Http 协议的无状态特点,用于解决用户状态的存储问题,而往往对于存储来说都会涉及到一个时间问题,下面我们来看看它的销毁方式到底有哪些。 销毁的方式 默认时间到期 自己设定到期时间 立刻失效 关闭浏览器 关 彻底弄清楚session是什么?_KEEP的博客 12-1 这是我之前理解的session,当然也是对的,只是解释的太肤浅,理解的太表面了,面试官如果听到这样的答案其实是不太满意的。我参考了其他的很多资料,彻底理解清楚session... ...a639735331的博客_session的销毁方式分别是什么? 6-22 销毁session有3种方式: (1)session.invalidate();//直接销毁 (2)在web.xml中设置超时时间://所有session起作用 5</sessi... 关于session销毁的一些总结 u013349916的专栏 4064 在日常的web开发中,我们经常需要用到一些关于会话处理的知识,今天在这里 监听器 - session 销毁 牧码的博客 1111 一、统计在线用户数等功能需要监听session的销毁,有两种方式: 使用HttpSessionListener监听session的销毁。 使用HttpSessionBindingListener监听session的销毁。 1、使用HttpSessionListener package advance; import java.util.List; import javax.servl... session的到底是做什么的?_h19910518的博客_session 11-26 session的运行机制和是怎么保存的? 既然,它也是一种服务区存储数据的方式,肯定也是存在服务器的某个地方了。确实,它存在服务器的/tmp 目录下,这一点我们接下来慢... 彻底弄清楚session是什么?_xueqinna的专栏 12-1 我参考了其他的很多资料,彻底理解清楚session。 在说session是啥之前,我们先来说说为什么会出现session会话,它出现的机理是什么?我们知道,我们用浏览器打开一个网页,... express 框架之session weixin_33937913的博客 72 一、什么是session? 最近在学习node.js 的express框架,接触到了关于session方面的内容。翻阅了一些的博客,学到了不少东西,发现一篇博文讲的很好,概念内容摘抄如下: Session是什么 Session一般译作会话,牛津词典对其的解释是进行某活动连续的一段时间。从不同的层面看待session,它有着类似但不全然相同的含义。比如... Spring MVC session 销毁不了 spjhandsomeman的专栏 3336 问题: 在用户登录之后,session采用 Spring MVC 注解的方式把用户登录信息放入到会话当中,结果在安全退出时候销毁session(),总是销毁不了。 问题代码: @Controller @RequestMapping("/login.do") @SessionAttributes("loginuser")//seesion保存方式 public class BzL 深度解剖session运行原理_weixin_43452467的博客 10-29 对于个人来说比较推荐使用第二种方法,因为当要销毁session的时候,那么也就意味着session已经失效了,所以这个时候我们把它给删掉才是最好的处理方式,一方面可以减少对... ...实现步骤,监听器(创建,销毁session时。启动,关闭服... 11-29
- 从用户最后一次访问网站开始,超过一定时间后,服务器自动销毁Session,以及保存在Session中的数据。 2. Tomcat 服务器默认的Session---