Session指客户端在向服务器访问时,保存在服务器中的信息。

实现的效果:
客户端在向服务器访问时,服务器会给客户端一个sessionID,然后对应的session内容会存储在服务器中。 客户端可以判断自己是否有sessionID,然后可以根据sessionID访问服务器中的内容。

具体的程序介绍:

当客户端在向服务器发出请求时,服务器会给客户端返回一个sessionID。所以在执行SessionDemo01时:
Session讲解

这里有个疑问:存在cookie中的sessionID是不是就是服务器端存储session数据的内存地址。
这样的话上图中的程序

HttpSession session = req.getSession();
即是从请求端req获得的是服务器中session数据的内存地址,然后服务器就可以拿去用了。
这只是我的猜想!!!

直接输出:
Session讲解
然后在session中存放了信息,一个键值对。key=“name”,value=Person对象。
Session讲解
在第二段程序中,将存储的session在控制台打印出来。当然,如果session为空的话,会抛出NullPointerException。
Session讲解
第三段程序:手动清除session.将key="name"的session清除掉
Session讲解
先访问SessionDemo03,session会被清除,此时再访问SessionDemo02,会出现:
Session讲解
但此时服务器仍会给客户端返回一个session。即先报出异常,因为该session被清除掉了,但在返回异常的时候,服务器还会给客户端一个session。
此时再运行SessionDemo01,显示:
Session讲解
第二种情况:先SessionDemo03再SessionDemo01
Session讲解
因为此时的session是新的。
刷新一下,又会变成:
Session讲解

注意观察的话,刷新后的session改变了,但其实对于同一个客户端,它是不应该变的。
改变的原因是对session进行了一个自动清除的操作:
Session讲解
每过一分钟,session就会自动的被清除。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-21
  • 2023-02-16
  • 2021-12-02
  • 2021-12-31
  • 2022-12-23
  • 2021-12-16
猜你喜欢
  • 2021-11-15
  • 2021-10-24
  • 2021-08-13
  • 2022-12-23
  • 2021-10-02
  • 2021-10-14
  • 2021-07-26
相关资源
相似解决方案