java 主动销毁session,关于java:问题Session的销毁方式到底有哪些
问题:Session的销毁形式到底有哪些?
Session,作为咱们离不开的后盾的技术,它的呈现次要是为了解决 Http 协定的无状态特点,用于解决用户状态的存储问题,而往往对于存储来说都会波及到一个工夫问题,上面咱们来看看它的销毁形式到底有哪些。
销毁的形式
默认工夫到期
本人设定到期工夫
立即生效
敞开浏览器
敞开服务器
案例实操
默认工夫到期
当客户端第一次申请 servlet 并且操作 session 时,session 对象生成,以 Tomcat 为例,Tomcat 中 session 默认的存活工夫为 30min,即你不操作界面的工夫,一旦有操作,session 会从新计时。那么 session 的默认工夫能够改么?答案是必定的。能够在 Tomcat 中的 web.xml 文件中进行批改。如下图:
【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元
本人设定到期工夫
当然除了以上的批改形式外,咱们也能够在程序中本人设定 session 的生命周期,通过 session.setMaxInactiveInterval(int); 来设定 session 的最大不流动工夫,单位为秒。
HttpSession session = req.getSession();
session.setMaxInactiveInterval(5);
当然咱们也能够通过 getMaxInactiveInterval(); 办法来查看以后 Session 对象的最大不流动工夫。
立即生效
或者咱们也能够通过 session.invalidate(); 办法让 session 立即生效。
session.invalidate();
敞开浏览器
session 的底层依赖 cookie 实现,因为不同用户拜访服务器要判断到底是应用哪个 session,所以当用户第一次拜访服务器的时候往往会把一个 session id 通过 cookie 存储到用户端,并且该 cookie 的无效工夫为敞开浏览器,从而 session 在浏览器敞开时也相当于生效了(因为没有 session id 再与之对应)。如下图,敞开后再关上,从新给浏览器调配了个 session id。
须要留神的是这里只是 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。
java 主动销毁session,关于java:问题Session的销毁方式到底有哪些相关推荐
- java怎么销毁session_「销毁session」java中session和cookie的创建与销毁
1.后端创建cookie Cookie cookName =newCookie("cookName", cookValue);cookName.setMaxAge(60*60*24 ...
- java session事件,Java开发网 - 再论Session事件的捕获
最近又有网友问到,如何用Session实现在线统计的功能,其实只要对Servlet规范详细了解一下,明白其基本原理,编写一个类似的功能并不是一件很复杂的事情.我以前的一篇文章,最初也是发表在JavaR ...
- php java 共享session_PHP 实现多服务器共享 SESSION 数据
一.问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使 ...
- java cookie 覆盖吗_Java Web-Cookie和Session
Java Web-Cookie和Session 会话 会话的概念 一次会话是指浏览器从浏览器第一次给服务器发送请求建立到其中一方断开结束会话的一个过程.它包含多次请求和响应. 会话是用来在一次会话的范 ...
- java session创建_request创建session
如何在 Java 中创建 session ? 使用request对象获取session,然后进行操作. 1,引入包servlet-api.jar . 2,使用request获取session:Http ...
- Java web servers 间是如何实现 session 同步的
Java web servers 间是如何实现 session 同步的 有一个多月的时间没有更新博客了,今天终于忙里偷闲,可以把近期的收获总结一下. 本文是关于Java web servers 之间 ...
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题
我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的.通过使用某些技术手段,比如jquery form.js可以达到异步上传的目的,但最重要的问题在于,它不能够进行多个文件的上传 ...
- java中cookie怎么用_java 中session和cookie的使用
这里讲session和cookie放在一起写, 不是说他们之间有什么关系,仅最近一个项目中同时用到.偷懒,放一起整理下 Session: Session的发明是为了填补HTTP协议的局限.请注意HTT ...
- jsp java代码取session_jsp中的session在java文件中取到
jsp页面调用.mxml页面,然后.mxml页面调用后台java文件,在后台java文件中通过session 可以取道jsp页面中的session的值. String path = request.g ...
最新文章
- 求幂运算、多项式乘法及Horner法则的应用
- Linux安装Java JDK:方式yum
- 【C语言简单说】九:输入
- (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
- substring 在C#,Javascript,SQL 中index开始值
- LeetCode 1382. 将二叉搜索树变平衡(中序遍历+二分递归)
- 一篇关于web.xml配置的详细说明(一)
- 壁纸控的你需要看这里!
- 项目管理工具maven
- 【IT运维】自动化运维是什么意思?有什么作用?
- linux设置默认mbr,将默认 EC2 CentOS MBR 转换为 GPT 以绕过 2TiB 限制
- HotPower超级CRC计算器与第三方CRC计算器名词解释与对照及操作
- 《A brief review of image denoising algorithms and beyond》
- Ajax学习日志(三)—— 如何传递get请求参数
- python全排列,递归
- X.509证书解析程序(C++版)
- 桌面云计算机有没有处理器,云桌面延伸成云电脑,电脑是否真的要被淘汰?
- 用供应链管理思路降低教培产品成本
- 通过B2C购物流程所能想到些什么!!
- 理论力学---主矢量和主矩
热门文章
- [AX]AX2012 R2 出差申请和支出报告
- 苹果手机免越狱群控投屏中控
- SpringBoot简易员工管理系统
- python万年历时钟下载_Python | “万年历——日期查询”
- 第二章、基础网络概念
- 小米盒子刷鸿蒙系统,继续提升配置:小米 发布小米盒子3 增强版
- APP可盈利模式分析
- java中常见的限流算法详细解析
- Jetson TX2入门之开箱刷机跑demo
- #mipush #解决mipush延时 #mipush假死 #解决mipush收不到信息(已注册)crond,安卓crond