JavaWeb session 需知

1:在第一次客户端连接至服务器的时候会新建一个session对象,以后再使用同一个客户端访问服务的时候都是用同一个session对其服务,但是关闭浏览器,下次再 访问的时候会创建一个新的session对象,这里的关闭是值得关闭浏览器的所有窗口,而不是关闭某一个选项卡!

2:web服务器会不会在浏览器关闭之后自动销毁session对象呢?

     测试表明,就算你关闭浏览器后session也不会自动销毁的,不关你是把浏览器窗口关闭了还是当前连接服务器的tab关闭了都不会自动销毁session,因为http协议是无状态的,服务器不知道客户端被关闭了,他只会在30分钟后再销毁这个session,当下一个打开浏览器的时候cookie中JSESSIONID字段已经不存在了,所以再连接服务器的话会新建一个session,上一个session被废弃了。依据此是否有了做 “记住我” 的思路,只要在客户端持久化cookie,下一次浏览器访问的时候把持久化的信息带上不就可以 “记住我” 了吗?事实上可以使用如下代码记住我


JavaWeb session 需知_第1张图片
remember me

3:session默认生效的时候是30分钟以内,

只要从session产生开始30分钟内断断续续有请求连接到服务器,session都不会被销毁,并且会一直都存在,即使30分钟后也不会销毁重建

                                                                      但是,

如果距离上一次请求查过30分钟的话session就会自动销毁,或者在你下一次请求的时候销毁重建。

4:session的创建和销毁可以使用HttpSessionListener监听

                                                           如果你看到这篇文章有什么想讨论的或者想要测试代码的可以加群 486646649

你可能感兴趣的:(JavaWeb session 需知)