首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java:关闭选项卡或浏览器时为什么不会销毁http会话?

Java是一种广泛使用的编程语言,用于构建各种应用程序,包括Web应用程序、桌面应用程序、移动应用程序等。在Java中,HttpSession是Web应用程序中用于存储用户会话信息的一种机制。当关闭一个选项卡或浏览器时,HttpSession并不会被销毁,而是会被保存在服务器上,直到该会话过期或被删除。

这种做法的原因在于,对于许多Web应用程序,尤其是那些需要处理敏感信息的应用程序,如银行、电子商务等,用户在使用过程中需要保持会话状态,以便在应用程序中继续访问和处理数据。如果每次关闭选项卡或浏览器时都销毁所有的HttpSession,那么用户需要重新登录,这将会带来很大的不便和用户体验问题。

因此,在Java中,HttpSession被设计为持久化的,可以在服务器上长期保存。当关闭选项卡或浏览器时,HttpSession并不会被销毁,而是会被保存在服务器上,直到该会话过期或被删除。这种做法可以确保用户在使用应用程序时,他们的会话信息不会被丢失,从而提高用户体验和安全性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaWeb核心篇(4)——Cookie和Session

Java核心篇(4)——Cookie和Session 本篇文章将会简单介绍Cookie和Session的概念和用法 会话跟踪技术 首先我们需要搞清楚会话会话跟踪的概念: 会话:用户打开浏览器,访问Web...但是我们实际上是无法直接判断请求是否来自同一浏览器HTTP协议是无状态的,每次浏览器向服务器请求,服务器都会将该请求视为新的请求 因而我们需要会话跟踪技术来实现会话内数据共享 会话跟踪技术实现方式...,负责存储少量的文本数据 Cookie的实现基于HTTP协议,在客户端和服务器进行请求响应交互,Cookie会将部分文本携带 当客户端向服务器A发送请求,服务器的response响应中会携带Set-cookie...默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁 Cookie存活时间修改方法: // 设置该cookie的存活时间 cookie.setMaxAge(int...seconds); /* seconds可以选择所有数值: 正数:可以保存该秒数;一般情况下以*来展示,例如60*60*24*7表示一周 0:表示立即销毁 负数:表示默认情况,当浏览器关闭,内存释放,

32020
  • 卷起来!两万六千字总结的JavaWeb核心技术学习笔记

    会话浏览器开启---浏览器和服务器进行多次请求响应---浏览器关闭 浏览器从开启 到 关闭,我们称为一次会话; 生活中,就是两人一次电话。 3. 会话技术是什么?作用?...浏览器关闭与否才会影响cookie保存。(浏览器关闭会话结束,默认保存在内存中cookie就会消失) 2. cookie是由http协议制定,只要使用http协议,就可以使用cookie。...cookie(默认) 特点是:浏览器关闭,cookie就会销毁  持久化cookie:保存在浏览器对应的硬盘上(持久化cookie) 特点:只有过期cookie,才会销毁 浏览器即使关闭,cookie...0的,就会存活在浏览器对应的硬盘上,不以浏览器关闭销毁。...(会执行该Filter的`init`方法) 销毁:服务器正常关闭销毁

    1.1K30

    JavaWeb(二)会话管理之细说cookie与session

    (就相当于接通电话后说话一样),都视为一次会话,直到浏览器关闭,本次会话结束。...浏览器支持禁用cookie操作。   5) 默认情况生命周期:与浏览器会话一样,当浏览器关闭cookie销毁的。...为true,只有当是https请求连接cookie才会发送给服务器端,而http不会,但是服务端还是可以发送给浏览端的。   ...然而浏览器从来不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所以会有这种错觉,   是大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个...恰恰是由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,一般是30分钟,当距离客户端上一次使用session的时间超过这个失效时间,服务器就可以认为客户端已经停止了活动

    1.1K70

    JavaWeb基础

    Servlet的销毁: Servlet是不会轻易销毁的,通常都是在服务器关闭Servlet才会销毁!...在服务器被关闭,服务器会去销毁Servlet,在销毁Servlet之前服务器会先去调用Servlet的destroy()方法,我们可以把对某些资源的释放等代码放到destroy()方法中。...会话的特性 一个会话中可能包含多个请求; 一个会话中发出请求的用户是唯一的; JavaWeb会话 从用户打开本站第一个页面开始,会话也开始了; 用户会发出0~n个请求; 用户关闭浏览器会话结束了...但也不会超出过多!...当用户关闭浏览器窗口后,再打开浏览器访问服务器,这时请求中没有了sessionId,那么服务器会创建一个session,再把sessionId通过Cookie保存到浏览器中,也是一个新的会话开始了。

    10210

    JavaScript LocalStorage 完整指南

    它通常分为 localStorage 和 sessionStorage,两者之间的主要区别是浏览器存储数据的时间。使用 sessionStorage,「一旦会话结束浏览器关闭,数据就会被删除」。...你也可以存储网页的状态,即使 HTTP 是无状态的。假设你只想使用某个站点的黑暗主题。使用 localStorage,你不必每次重新打开浏览器并访问站点都更改主题。...localStorage 可用于缓存网站存储静态数据,以便在页面离线显示客户端信息,然后在 internet 重新连接获取必要的数据。...一个是「持久性」:存储在 localStorage 中的数据在会话中持续存在。打开新选项卡、访问新域关闭浏览器不会清除 localStorage。...另一方面,每当会话结束,sessionStorage 将被清除。打开一个新选项卡访问一个新域将清除特定域的会话

    2.2K10

    JavaEE | 一文吃透Cookie

    浏览器发出请求到服务端响应数据给前端之后,一次会话(在浏览器和服务器之间)就被建立了 会话被建立后,如果浏览器服务端都没有被关闭,则会话就会持续建立着 浏览器和服务器就可以继续使用该会话进行请求发送和响应...问:为什么一个会话中的多次请求要共享数据?...结论:不存在,当我们关闭浏览器后再通过BServlet访问这个Cookie对象就获取不到了 原因:默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁 《...到时间自动删除 2.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁 3.零:删除对应Cookie ---- 《案例:设置Cookie存活时间》 编写Servlet...://localhost:8080/aServlet,然后关闭浏览器并重启,访问http://localhost:8080/bServlet,能在控制台打印出username:bby,说明Cookie没有随着浏览器关闭而被销毁

    40220

    会话技术-Session的使用

    用户关闭浏览器, 保存id的cookie默认会话级别,自动销毁了 -> 通过持久化cookie,达到session持久化 (下一个) 2. 医院的原因 0). 医院把病历本弄丢了 1)....因为cookie存活时间默认为会话,所以用户关闭浏览器就会销毁(用户无意识) -> session持久化 2)....钝化(序列化: ObjectOutputStream) 保存 当服务器正常关闭,session中的数据,会序列化到硬盘 (持久化) 序列化的目的: 将内存中对象数据结构 保存 到硬盘 (编码...创建 * 何时销毁 服务器关闭项目卸载销毁 * 作用范围 整个web项目(共享数据) 2.2.2 HttpSession域对象 * 何时创建 用户第一次调用request.getSession...,直到浏览器关闭为止 -> 狭义的一次会话 cookie和session默认都是会话级别,都可以设置持久级别 2.2.3 HttpServletRequest域对象 * 何时创建 服务器接收到请求

    1K21

    Jsp和Servlet有什么区别?

    原文:http://www.java520.cn/java%E5%9F%BA%E7%A1%80/141.html Servlet接口中有哪些方法?...等方法;当服务器关闭项目被卸载服务器会将Servlet实例销毁,此时会调用Servlet的destroy()方法。...2) 设置表单隐藏域:将和会话跟踪相关的字段添加到隐式表单域中,这些信息不会浏览器中显示但是提交表单时会提交给服务器。...当用户通过浏览器和服务器建立一次会话后,会话ID就会随响应信息返回存储在基于窗口的cookie中,那就意味着只要浏览器没有关闭会话没有超时,下一次请求这个会话ID又会提交给服务器让服务器识别用户身份...Java Web开发中的监听器(listener)就是application、session、request三个对象创建、销毁或者往其中添加修改删除属性自动执行代码的功能组件,如下所示: ServletContextListener

    1.6K41

    【JavaWeb】学习笔记——Servlet、Filter、Listenter

    服务终止:当需要释放内存容器关闭,容器会调用Servlet示例的destroy()方法完成资源的释放。...在内存释放服务器关闭销毁Servlet void destroy() 获取ServletConfig对象 ServletConfig getServletConflg() 获取Servlet信息 String...,会话结束,在一次会话中可以包含多次请求和响应 会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多个请求间共享数据 Http协议是无状态的,...:cookie Cookie 使用细节 Cookie 存活时间 默认情况下,Cookie 存储在浏览器内存中,当然浏览器关闭,内存释放,则Cookie销毁 setMaxAge(int seconds...):设置Cookie存活时间 1.正数:将 Cookie写入浏览器所在电脑的硬盘,持久化存储,到时间自动删除 2.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁

    46320

    Session详解

    结论:如果是不同浏览器或者重新打开浏览器后,打印的Session就不一样了。所以Session实现的也是一次会话中的多次请求之间的数据共享。...,因为浏览器的cookie已被销毁,所以就没有JESSIONID的数据,服务端获取到的session就是一个全新的session对象 ---- 《实际演示》 使用谷歌浏览器访问http://localhost...:8080/demo1,并按下F12查看 使用谷歌浏览器访问http://localhost:8080/demo2,并按下F12查看 3.3、Session的使用细节 在使用Session注意下面两点细节...---- 《测试正常启动和关闭Tomcat服务器,Session会不会消失》 正常启动Tomcat(使用Maven Helper插件) 进入到项目文件夹中,在终端使用以下命令: mvn tomcat7...,重新建立的连接就已经是一个全新的会话,获取的session数据也是一个新的对象 session的数据要想共享,浏览器不能关闭,所以session数据不能长期保存数据 cookie是存储在客户端

    52710

    Jsp和Servlet有什么区别?

    等方法;当服务器关闭项目被卸载服务器会将Servlet实例销毁,此时会调用Servlet的destroy()方法。...2) 设置表单隐藏域:将和会话跟踪相关的字段添加到隐式表单域中,这些信息不会浏览器中显示但是提交表单时会提交给服务器。...3)cookie:cookie有两种,一种是基于窗口的,浏览器窗口关闭后,cookie就没有了;另一种是将信息存储在一个临时文件中,并设置存在的时间。...当用户通过浏览器和服务器建立一次会话后,会话ID就会随响应信息返回存储在基于窗口的cookie中,那就意味着只要浏览器没有关闭会话没有超时,下一次请求这个会话ID又会提交给服务器让服务器识别用户身份...Java Web开发中的监听器(listener)就是application、session、request三个对象创建、销毁或者往其中添加修改删除属性自动执行代码的功能组件,如下所示: ServletContextListener

    2.4K20

    会话技术知识点整理(Cookie和Session)

    的持久化保存,那么浏览器关闭后,cookie销毁,那么cookie里面记录的JSESSIONID也随之销毁,下次打开浏览器发现cookie没了,也就无法得到对应的cookie里面记录的JSESSIONID...session不会销毁,并且可以有多个session同时存在的请求,因为浏览器每次关闭,再打开,如果需要session对象,发现id没了,会新创建一个cookie保存新sesssion的id。...默认情况下,浏览器关闭后,cookie数据被销毁 cookie默认在会话期间有效,只要浏览器关闭,cookie就存在,即cookie存在于浏览器的进程之中 cookie的修改和删除都是同名cookie...---- 当客户端关闭后,服务器不关闭,两次获取session是否为同一个 如果没有设置cookie的持久化保存,那么浏览器关闭后,cookie销毁,那么cookie里面记录的JSESSIONID...被销毁时机 Session有默认的失效时间,服务器关闭session不会销毁,并且可以有多个session同时存在的请求,因为浏览器每次关闭,再打开,如果需要session对象,发现id没了,会新创建一个

    57120

    TCPIP三次握手与四次挥手学习笔记(二)

    为什么TCP连接的时候是3次,关闭的时候却是4次? 因为只有在客户端和服务端都没有数据要发送的时候才能断开TCP。...在 HTTP1 中浏览器限制了同一个域名下的请求数量(Chrome 下一般是六个),当在请求很多资源的时候,由于队头阻塞当浏览器达到最大请求数量,剩余的资源需等待当前的六个请求完成后才能发起请求。...session是服务器端对象 session 是浏览器和服务器会话过程中,服务器分配的一块储存空间。...服务器默认为浏览器在cookie中设置 sessionid,浏览器在向服务器请求过程中传输 cookie 包含 sessionid ,服务器根据 sessionid 获取出会话中存储的信息,然后确定会话的身份信息...等方法; 当服务器关闭项目被卸载服务器会将Servlet实例销毁,此时会调用Servlet的destroy()方法。

    26230

    TCPIP三次握手与四次挥手学习笔记(二)

    为什么TCP连接的时候是3次,关闭的时候却是4次? 因为只有在客户端和服务端都没有数据要发送的时候才能断开TCP。...在 HTTP1 中浏览器限制了同一个域名下的请求数量(Chrome 下一般是六个),当在请求很多资源的时候,由于队头阻塞当浏览器达到最大请求数量,剩余的资源需等待当前的六个请求完成后才能发起请求。...session是服务器端对象 session 是浏览器和服务器会话过程中,服务器分配的一块储存空间。...服务器默认为浏览器在cookie中设置 sessionid,浏览器在向服务器请求过程中传输 cookie 包含 sessionid ,服务器根据 sessionid 获取出会话中存储的信息,然后确定会话的身份信息...等方法; 当服务器关闭项目被卸载服务器会将Servlet实例销毁,此时会调用Servlet的destroy()方法。

    27120

    Web存储(Web Storage)

    不仅如此 Web 存储还有个好玩的特性 存储事件 无论什么时候存储在 localStorage sessionStorage 的数据发生变化,浏览器都会在【其他】对该数据可见的窗口对象上触发存储事件...(但是,在对数据进行改变的窗口对象上是不会触发的)。...2. sessionStorage sessionStorage 的工作方式和 localStorage 很接近,不同之处在于储存数据的有效期与作用域; 不是永久性存储,会在浏览器选项卡)被关闭销毁...(注:浏览器选项卡)刷新不会引起 sessionStorage 销毁); sessionStorage 的作用域不仅受同源策略限制,而且还被限定在浏览器顶层窗口中;(即:同源的文档渲染在浏览器不同的标签页中...https://caniuse.com/#search=WebStorage https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API http

    1.4K40

    Session深度解析

    广义的session        中文名称会话Http客户端和Http服务器开始通信,就会产生会话会话过程是可以连续的,也可以是时断时续的,它会有一个时间范围,表象就是你登录一个网站,如果长时间未登录...(刚开始学习,老师经常这么说,可能也是为了方便理解)。...以Tomcat为例,当使用浏览器访问一个jsp,Tomcat会先根据jsp生成java文件,再编译成class,最后运行,输出内容到浏览器浏览器解析呈现给用户。...浏览器窗口关闭,session会消失吗?        ...老师通常这么告诉,很多书中也这样讲,真是偷换概念,大错特错,浏览器关闭后,只是对应服务器session的JSESSIONID消失了,而服务器再也用不到这个session,导致超时,服务器会自动销毁

    78900

    程序员的20大Servlet面试问题及答案

    修改web.xml,允许服务器启动初始化。 服务(service):方法被调用时进行服务,在项目启动期间可以进行多次服务(请求一次执行一次) 销毁(destory):当服务器关闭进行销毁。...每次请求,调用服务 服务器关闭,调用销毁。 2.什么是jsp?jsp和Servlet有什么区别?...通过init()方法进行初始化,一旦被装入了web服务器,一般不会从Web服务器删除,直到服务器关闭才会调用  destroy()方法进行销毁。...但是servlet不会随着请求的销毁销毁 如果某个Servlet配置了 1 ,该Servlet也是在Tomcat(Servlet容器)启动初始化。   ...session能够存储任意的Java对象,cookie只能存储String类型的对象。 17.浏览器和Servlet通信使用的是什么协议? 浏览器和Servlet通信使用的是HTTP协议。

    13810

    Servlet Cookie基本概念和使用方法

    当用户访问一个网站应用程序时,该网站应用程序会将一个包含用户信息的 Cookie 发送到用户的浏览器。...浏览器会将该 Cookie 存储在用户的计算机上,并在以后的访问中将该 Cookie 发送回网站应用程序。...会话 Cookie:这些 Cookie 在用户关闭浏览器时会被删除。它们主要用于跟踪用户在当前会话中的活动,如用户在网站上浏览的页面、添加到购物车的商品等。...持久 Cookie:这些 Cookie 在用户关闭浏览器后仍然存在,可以在指定的时间段内保留。它们用于存储长期的用户信息,如用户的登录凭据、偏好设置等。...微软浏览器:打开Edge浏览器,并导航到您感兴趣的网站。点击右上角的菜单图标(三个水平点)。在下拉菜单中选择“更多工具”。在弹出的菜单中选择“开发人员工具”。在开发者工具窗口中,选择“应用”选项卡

    13710
    领券