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

如何使用Java HTTPSession在我的站点上保持会话打开,即使关闭并重新打开浏览器也是如此?(非PHP)

在Java中,可以使用HTTPSession来保持会话打开,即使关闭并重新打开浏览器也是如此。HTTPSession是Java Servlet规范中的一个接口,用于在服务器端跟踪用户会话状态。

要在站点上使用Java HTTPSession保持会话打开,可以按照以下步骤进行操作:

  1. 在Java Web应用程序中,首先需要获取HttpServletRequest对象,可以通过Servlet的doGet()或doPost()方法中的参数获取。
  2. 通过HttpServletRequest对象,可以调用getSession()方法来获取当前会话的HTTPSession对象。如果会话不存在,则会创建一个新的会话。
代码语言:txt
复制
HttpServletRequest request = ...; // 获取HttpServletRequest对象
HttpSession session = request.getSession();
  1. 通过HTTPSession对象,可以存储和检索会话数据。可以使用setAttribute()方法将数据存储在会话中,使用getAttribute()方法从会话中检索数据。
代码语言:txt
复制
session.setAttribute("key", value); // 存储数据
Object data = session.getAttribute("key"); // 检索数据
  1. 在会话期间,无论用户关闭并重新打开浏览器,都可以通过相同的方式获取到之前存储在会话中的数据。

需要注意的是,HTTPSession默认情况下是依赖于浏览器的Cookie来实现会话跟踪的。当用户第一次访问站点时,服务器会在响应中设置一个名为JSESSIONID的Cookie,用于标识用户的会话。当用户关闭并重新打开浏览器时,浏览器会自动发送该Cookie,服务器通过该Cookie来获取对应的会话。

此外,还可以通过配置修改HTTPSession的行为,例如设置会话超时时间、禁用Cookie等。具体的配置方式可以参考Java Servlet规范或相关的Java Web框架文档。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云负载均衡(CLB)、腾讯云弹性缓存Redis(TencentDB for Redis)等。您可以通过访问腾讯云官网(https://cloud.tencent.com/)获取更详细的产品介绍和文档信息。

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

相关·内容

jsessionid困扰「建议收藏」

如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定过期时间。   ...四、如何根据用户爱好定制站点   网站可以使用cookie记录用户意愿。对于简单设置,网站可以直接将页面的设置存储cookie中完成定制。...如果你希望浏览器将该cookie存储磁盘上,则需要使用maxAge,给出一个以秒为单位时间。将最大时效设为0则是命令浏览器删除该 cookie。   ...其它servlet、JSP页面以及Java Web应用都可以设置cookie,依据路径设置,其中任何cookie都有可能返回给用户浏览器。   ...这意味着在你站点不能有任何静态HTML页面(至少静态页面中不能有任何链接到站点动态页面的链接)。因此,每个页面都必须使用servlet或 JSP动态生成。

1.8K10

网络基础 http 会话(session)详解

记录当前session id,删除cookie,关闭标签页面,再次打开相同站点相同页面,查看session id是否变化 结果:未关闭浏览器情况下,session id保持不变 5....记录当前session id,关闭所有浏览器,再次打开相同站点相同页面,查看session id是否变化 结果:session id改变了 6....一般都是在用户做log off时候发个指令去删除会话信息,浏览器从来不会主动关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,所以大部分会话机制都使用session cookie...测试验证: 访问某网站,获取请求头,方法,请求页面(可用firebug) 关闭浏览器,然后重新打开,手动编辑请求,发送请求,发现确实可以获取。...2、给每位顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员店里纪录本找到这个卡号对应纪录添加一些消费信息--这种做法就是服务器端保持状态。

4.6K51
  • 【小家java】Session和Cookie区别和联系、分布式session几种实现方式

    会话cookie和持久cookie区别? 如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。...如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定过期时间。...客户后来重新连接时,这个用户ID会自动返回,服务器对它进行检查,确定它是否为注册用户且选择了自动登录,从而使用户无需给出明确用户名和密码,就可以访问服务器资源。 如何根据用户爱好定制站点?...其它servlet、JSP页面以及Java Web应用都可以设置cookie,依据路径设置,其中任何cookie都有可能返回给用户浏览器。...A.程序调用HttpSession.invalidate() B.距离一次收到客户端发送session id时间间隔超过了session最大有效时间 C.服务器进程被停止 再次注意关闭浏览器只会使存储客户端浏览器内存中

    1.2K20

    2. 深入理解 Cookie 与 Session ,Facade 设计模式, 分布式 Session

    如果用户已选择禁用 cookie,则写入操作将失败,并且依赖 cookie 后续站点将必须采取默认操作,或者提示用户重新输入将存储 cookie 中信息。 为什么使用 Cookie?...使用 cookie 情况下将数据存储服务器也是有问题,因为如果不需要在每次访问网站时登录就很难检索特定用户信息。...2.怎么保存? 3.如何运行? 4.有生命周期吗? 5.关闭浏览器会过期吗?...已建立会话是执行面向连接通信基本要求。会话也是无连接通信模式下传输基本步骤。但是,任何单向传输都不会定义会话。...JSP使用一个叫HttpSession对象实现同样功能。HTTPSession 建立cookies 和URL-rewriting

    1.3K30

    WebSocket

    WebSocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性连接,并进行双向数据传输。 长连接: 建立连接后不管是否使用,都保持TCP连接。但是长连接并不是永久连接。...过程:建立连接–>传输数据…(保持连接)…传输数据–>关闭连接 短连接: 短连接是一次性连接,即浏览器和服务器每次进行操作时都需要重新建立TCP连接,操作结束后即中断连接。...,TCP 连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同连接发送请求 WebSocket长连接与HTTP长连接区别 既然HTTP也能实现长连接,为什么还要用WebSocket呢?...浏览器) 创建websocket对象 Websocket协议定义了两种URL方案 ws: 加密 wss :加密(使用HTTPS采用安全机制保证HTTP连接安全)。...Endpoint类中可以看到各生命周期相关方法: 方法 注解 描述 onClose @OnClose 当会话关闭时调用 onOpen @OnOpen 当开启一个新会话时调用 onError

    1.4K20

    WebSocket

    整个通信过程,客户端(浏览器)向服务端发送请求,服务端接收请求返回响应信息。...WebSocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性连接,并进行双向数据传输。 长连接: 建立连接后不管是否使用,都保持TCP连接。但是长连接并不是永久连接。...过程:建立连接–>传输数据…(保持连接)…传输数据–>关闭连接 短连接: 短连接是一次性连接,即浏览器和服务器每次进行操作时都需要重新建立TCP连接,操作结束后即中断连接。...,TCP 连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同连接发送请求 WebSocket长连接与HTTP长连接区别 既然HTTP也能实现长连接,为什么还要用WebSocket呢?...Endpoint类中可以看到各生命周期相关方法: 方法 注释 描述 onClose @Onclose 当会话关闭时调用 onOpen @Onopen 当开启一个新会话时调用 onEerror @OnError

    29630

    Session是什么?

    默认情况下,PHP.ini 中设置 SESSION 保存方式是 files(session.save_handler = files),即使用读写文件方式保存 SESSION 数据,而 SESSION...当然还是服务器端程序运行过程中创建,不同语言实现应用程序有不同创建Session方法,而在Java中是通过调用HttpServletRequestgetSession方法(使用true作为参数...删除:超时;程序调用HttpSession.invalidate();程序关闭。   session存放在哪里:服务器端内存中。...session会因为浏览器关闭而删除吗?不会,session只会通过上面提到方式去关闭。 ---- session不会因为浏览器关闭而删除。...但是存有session IDcookie默认过期时间是会话级别。也就是用户关闭浏览器,那么存储客户端session ID便会丢失,但是存储服务器端session数据并不会被立即删除。

    1.5K20

    Session详解

    基本使用 JavaEE中提供了HttpSession接口,来实现一次会话多次请求之间数据共享功能。...结论:如果是不同浏览器或者重新打开浏览器后,打印Session就不一样了。所以Session实现也是一次会话多次请求之间数据共享。...Session是如何保证一次会话中获取Session对象是同一个呢?...session对象 (7)关闭打开浏览器后,因为浏览器cookie已被销毁,所以就没有JESSIONID数据,服务端获取到session就是一个全新session对象 ---- 《实际演示》...文件会被删除掉 小结: session数据存储服务端,服务器重启后,session数据会被保存 浏览器关闭启动后,重新建立连接就已经是一个全新会话,获取session数据也是一个新对象

    53310

    整理+学习《骆昊-Java面试题全集(中)》

    Apache:目前Apache仍然是世界用得最多Web服务器,其市场占有率很长时间都保持60%以上(目前市场份额约40%左右)。...3)cookie:cookie有两种,一种是基于窗口浏览器窗口关闭后,cookie就没有了;另一种是将信息存储一个临时文件中,设置存在时间。...当用户通过浏览器和服务器建立一次会话后,会话ID就会随响应信息返回存储基于窗口cookie中,那就意味着只要浏览器没有关闭会话没有超时,下一次请求时这个会话ID又会提交给服务器让服务器识别用户身份...当然,和用户会话相关其他信息(除了会话ID)也可以存在cookie方便进行会话跟踪。 4)HttpSession:在所有会话跟踪技术中,HttpSession对象是最强大也是功能最多。...B/S应用模式中可以视为特殊C/S应用模式,只是将C/S应用模式中特殊客户端换成了浏览器,因为几乎所有的系统都有浏览器,那么只要打开浏览器就可以使用应用,没有安装、配置、升级客户端所带来各种开销

    95560

    Jsp和Servlet有什么区别?

    3)cookie:cookie有两种,一种是基于窗口浏览器窗口关闭后,cookie就没有了;另一种是将信息存储一个临时文件中,设置存在时间。...当用户通过浏览器和服务器建立一次会话后,会话ID就会随响应信息返回存储基于窗口cookie中,那就意味着只要浏览器没有关闭会话没有超时,下一次请求时这个会话ID又会提交给服务器让服务器识别用户身份...会话中可以为用户保存信息。会话对象是服务器内存中,而基于窗口cookie是客户端内存中。 如果浏览器禁用了cookie,那么就需要通过下面两种方式进行会话跟踪。...当然,使用cookie时要注意几点:首先不要在cookie中存放敏感信息;其次cookie存储数据量有限(4k),不能将过多内容存储cookie中;再者浏览器通常只允许一个站点最多存放20个cookie...当然,和用户会话相关其他信息(除了会话ID)也可以存在cookie方便进行会话跟踪。 4)HttpSession:在所有会话跟踪技术中,HttpSession对象是最强大也是功能最多

    2.4K20

    Jsp和Servlet有什么区别?

    3)cookie:cookie有两种,一种是基于窗口浏览器窗口关闭后,cookie就没有了;另一种是将信息存储一个临时文件中,设置存在时间。...当用户通过浏览器和服务器建立一次会话后,会话ID就会随响应信息返回存储基于窗口cookie中,那就意味着只要浏览器没有关闭会话没有超时,下一次请求时这个会话ID又会提交给服务器让服务器识别用户身份...会话中可以为用户保存信息。会话对象是服务器内存中,而基于窗口cookie是客户端内存中。如果浏览器禁用了cookie,那么就需要通过下面两种方式进行会话跟踪。...当然,使用cookie时要注意几点:首先不要在cookie中存放敏感信息;其次cookie存储数据量有限(4k),不能将过多内容存储cookie中;再者浏览器通常只允许一个站点最多存放20个cookie...当然,和用户会话相关其他信息(除了会话ID)也可以存在cookie方便进行会话跟踪。 4)HttpSession:在所有会话跟踪技术中,HttpSession对象是最强大也是功能最多

    1.6K41

    理解Cookie和Session机制

    程序中,会话跟踪是很重要事情。理论,一个用户所有请求操作都应该属于同一个会话,而另一个用户所有请求操作则应该属于另一个会话,二者不能混淆。...它可以弥补HTTP协议无状态不足。Session出现之前,基本所有的网站都采用Cookie来跟踪会话。...如果不希望CookieHTTP等安全协议中传输,可以设置Cookiesecure属性为true。浏览器只会在HTTPS和SSL等安全协议中传输此类Cookie。...然而浏览器从来不会主动关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所以会有这种错觉,是大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个...,当浏览器cookie被禁掉,服务端session任然可以正常使用,ASP没试验过,但是对于网络很多用php和jsp编写网站,发现禁掉cookie,网站session都无法正常访问)。

    1.3K20

    面试角度诠释Java工程师(一)

    2.Java集合框架树 ? Collection接口:它是Java集合框架一个根接口,也是List、Set和Queue接口父接口。...①如果是第一次请求,那么TomcatJSP引擎就把这个JSP文件转换成一个Servlet(一个Servlet从本质而言也是一个Java类),既然是一个Java类就需要通过编译,生成相应字节码文件,...它是HttpSession实例对象。 什么是会话?为什么要用session对象? 会话:当一个客户端打开浏览器连接到服务器开始,到客户端关闭浏览器服务器结束这个过程,我们称为一个会话。...Session生命周期 ? Session生命周期“活动”思路: ①某次会话当中通过超链接打开新页面属于同一次会话。...②只有当前会话页面没有全部关闭重新打开浏览器窗口访问同一项目资源时属于同一次会话。 ③除非本次会话所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新会话

    53210

    Session、Cookie、Token 【浅谈三者之间那点事】

    Session 如何判断是否是同一会话 服务器第一次接收到请求时,开辟了一块 Session 空间(创建了Session对象),同时生成一个 sessionId ,通过响应头 **Set-Cookie...但是,Web 浏览器可能会使用会话还原,这会使大多数会话 Cookie 保持永久状态,就像从未关闭浏览器一样。...即使是安全,也不应该将敏感信息存储cookie 中,因为它们本质是不安全,并且此标志不能提供真正保护。...Header进行Token信息检查; 基于一点,你可以用一套token认证代码来面对浏览器类客户端和浏览器类客户端; 因为token是被签名,所以我们可以认为一个可以解码认证通过token是由我们系统发放...JWT 和 Session Cookies 选型 我们上面探讨了 JWT 和 Cookies 不同点,相信你也会对选型有了更深认识,大致来说 对于只需要登录用户访问存储站点数据库中一些信息中小型网站来说

    21.1K2020

    Java面试HTTP篇(三):Session(会话

    然后选择 B 商品就是 B 线程。可是每次线程独立(对容器而言,A、B成了不同用户),线程 A 不知道有 B,B 也不知道 A。如何一起付款呢? 简单来说:怎么保存同个用户多个请求会话状态呢?...问题就在于如何跟踪同一个用户,选择可以很多: 1、EJB (有状态会话bean保存会话状态) 环境苛刻需要带EJBJ2EE服务器,而不是Tomcat这种Web容器。 2、数据库(这貌似万能。...这技术,也可以使用在 Web 安全,可以有效地控制 CRSF 跨站请求伪造。 三、详细介绍Seesion机制过程 图中这是 Session 第一次请求详细图。...以 Cookie 技术实现,也写了个HttpSessionByCookieServletT.java Servlet 小 demo,模拟下 Seesion 一生。...只不过 Session 唯一标识是:JSESSIONID ④ 浏览器解析 Cookie,保存至浏览器文件。 如图,找到了对应 Session 存储 cookie 文件。该文件被保护不能打开

    63920

    JavaEE 要懂小事:三、图解Session(会话

    然后选择 B 商品就是 B 线程。可是每次线程独立(对容器而言,A、B成了不同用户),线程 A 不知道有 B,B 也不知道 A。如何一起付款呢? 简单来说:怎么保存同个用户多个请求会话状态呢?...问题就在于如何跟踪同一个用户,选择可以很多: 1、EJB (有状态会话bean保存会话状态) 环境苛刻需要带EJBJ2EE服务器,而不是Tomcat这种Web容器。 2、数据库(这貌似万能。...这技术,也可以使用在 Web 安全,可以有效地控制 CRSF 跨站请求伪造。 三、详细介绍Seesion机制过程 图中这是 Session 第一次请求详细图。...以 Cookie 技术实现,也写了个HttpSessionByCookieServletT.java Servlet 小 demo,模拟下 Seesion 一生。...只不过 Session 唯一标识是:JSESSIONID ④ 浏览器解析 Cookie,保存至浏览器文件。 如图,找到了对应 Session 存储 cookie 文件。该文件被保护不能打开

    35840

    JSP基础--会话跟踪技术、cookie、session

    JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭浏览器会话结束。 一个会话多个请求中共享数据,这就是会话跟踪技术。...如果关闭浏览器,那么会话结束,再打开浏览器就开始了一个新会话,那么直接访问index1.jsp或index2.jsp时,session是新,没有保存user对象,那么表示还没有登录。...当用户关闭浏览器窗口后,再打开浏览器访问服务器,这时请求中没有了sessionId,那么服务器会创建一个session,再把sessionId通过Cookie保存到浏览器中,也是一个新会话开始了。...而且同时打开多个相同浏览器窗口,是使用同一session。如果你使用是老浏览器,例如IE6,那么就会每个窗口一个session。...如果用户浏览器关闭了Cookie功能,那么session不能使用了! 还可以浏览器关闭了Cookie后使用URL重写方法保存sessionId,这需要在每个URL后面都加上sessionId!

    93220

    JavaWeb day10会话技术

    浏览器发出请求到服务端响应数据给前端之后,一次会话(浏览器和服务器之间)就被建立了 会话被建立后,如果浏览器或服务端都没有被关闭,则会话就会持续建立着 浏览器和服务器就可以继续使用会话进行请求发送和响应...,这个功能大家都比较熟悉 第一次输入用户名和密码勾选记住然后进行登录 下次再登陆时候,用户名和密码就会被自动填充,不需要再重新输入登录 比如记住这个功能需要记住用户名和密码一个星期,那么使用默认情况下...图片 ==注意:一台电脑上演示时候,如果是相同浏览器必须要把浏览器全部关掉重新打开,才算新开一个浏览器。== 当然也可以使用不同浏览器进行测试,就不需要把之前浏览器全部关闭。...测试结果:如果是不同浏览器或者重新打开浏览器后,打印Session就不一样了。 所以Session实现也是一次会话多次请求之间数据共享。...小结 Session钝化和活化介绍完后,需要我们注意是: session数据存储服务端,服务器重启后,session数据会被保存 浏览器关闭启动后,重新建立连接就已经是一个全新会话,获取session

    72100

    HttpSession对象

    会话将保留指定时间段,跨多个连接或来自用户页面请求。一个 会话通常对应于一个用户,该用户可能多次访问一个站点。...session 无论客户端还是服务器端都可以感知到,若重新打开一个新浏览器,则无法取得之前设置 session,因为每一个 session 只保存在当前浏览器当中,并在相关页面取得。...session(无论是获取到还是 新创建 sessionId cookie 对象,添加到 response 对象中,响应给客户端,有效时间为关闭 浏览器。...* 2.手动设置到期时间 * 3.立刻销毁 * 4.关闭浏览器 * session底层依赖cookie,cookie对象默认只浏览器中存活,关闭浏览器失效...从前面的 JESSIONID 可知道,session 底层依赖 cookie 实现,并且该 cookie 有效时间为关闭浏览器,从而 session 浏览器关闭时也相当于失效了(因为没有 JSESSION

    55370

    Session深度解析

    以Tomcat为例,当使用浏览器访问一个jsp时,Tomcat会先根据jsp生成java文件,再编译成class,最后运行,输出内容到浏览器浏览器解析呈现给用户。...打开test_jsp.java,找到其_jspService方法,会看到声明了一些我们常说jsp内置对象。...初次访问服务器一个jsp,服务器响应头中设置了临时cookie,加上了一JSESSIONID(毋庸置疑,肯定是服务器给加上,Tomcat具体代码没有去找)。        ...注:浏览器多个tab之间(同一域下)共享session,实际就是临时cookie都一样,JSESSIONID都是一个。而多个窗口之间使用不同cookie不一样,所以不能共享session。...服务器被强制关闭,肯定啥都没有了,这要看服务器具体实现,像Tomcat正常关闭(使用shutdown,而不是X掉)的话,是会对session序列化到硬盘上重新启动后,会读取,原有的session依然存在

    81700
    领券