下面我们要用监听器 做一个统计用户在线的例子,我们用到Session的监听,这里补充Session知识:
下面摘抄 - CSDN博主「邹小胖向前冲」的原创文章 原文链接:https://blog.csdn.net/weixin_48665759/article/details/116147161
什么是Session
Session 是另⼀种记录浏览器状态的机制。不同的是Cookie保存在浏览器中,Session保存在服务器中。⽤户使⽤浏览器访问服务器的时候,服务器把⽤户的信息以某种的形式记录在服务器【Servle中写了,这里不多说】,这就是Session。
如果说Cookie是检查⽤户身上的”通⾏证“来确认⽤户的身份,那么Session就是通过检查服务器上的”客户明细表“来确认⽤户的身份的。Session相当于在服务器中建⽴了⼀份“客户明细表”。
使用原因:Session⽐Cookie使⽤⽅便,Session可以解决Cookie解决不了的事情【Session可以存储对象,Cookie只能存储字符串】
HttpSession对象常用的方法:
long getCreationTime();【获取Session被创建时间】
String getId();【获取Session的id】
long getLastAccessedTime();【返回Session最后活跃的时间】
ServletContext getServletContext();【获取ServletContext对象】
void setMaxInactiveInterval(int var1);【设置Session超时时间】
int getMaxInactiveInterval();【获取Session超时时间】
Object getAttribute(String var1);【获取Session属性】
Enumeration getAttributeNames();【获取Session所有的属性名】
void setAttribute(String var1, Object var2);【设置Session属性】
void removeAttribute(String var1);【移除Session属性】
void invalidate();【销毁该Session】
boolean isNew();【该Session是否为新的】
创建 和 销毁:Session在⽤户第⼀次访问服务器Servlet,jsp等动态资源就会被⾃动创建,记住是第一次啊!
Session⽣成后,只要⽤户继续访问,服务器就会更新Session的最后访问时间,⽆论是否对Session进⾏读写,服务器都会认为Session活跃了⼀次。
由于会有越来越多的⽤户访问服务器,因此Session也会越来越多。为了防⽌内存溢出,服务器会把⻓时间没有活跃的Session从内存中删除,这个时间也就是Session的超时时间【3种方法
1. XML 设置 超时【默认30分钟】
2Java代码设置【秒为单位 自定义】
3.Java代码直接Kill掉 in什么什么什么方法
】。
原理就不说了 其实就是Cokkie 来定位ID 来寻找,所以 一个浏览器有一个Session 对象,
完.