1.用的是servlet的监听器:
(1)用的是HttpSessionListener 这个监听器下有两个方法sessionCreated和sessionDestroyed,当有session创建时就调用
sessionCreated这个方法,当有session失效的时候调用sessionDestroyed这个方法。
(2)程序启动时,开辟一块内存空间,来存储在线用户。(我用了个静态的map),map中存的是username和sessionid
(3)当有用户登录时,先用用户名去map中取,如果取出的sessionid为空,添加到map中,相反则返回登陆页,告知用户已登录。
(4)当有用户退出是分两种情况:一是单击退出按钮这个好捕捉,清空session。二是用户直接关闭浏览器,这个在页面中用了一个window.onbeforeunload事件,来清空session。(这个是一个弊端,我这个页面有个公用的页面加一个就好了,但是如果没有公用的页面,在添加这个事件就要每个页面都要添加,本来浏览器关闭后会session会自动失效不知道为什么没有调用监听器的sessionDestroyed方法(考虑中),考虑更好的方法。)
(5)当用户单击刷新按钮时,会重新运行程序,此时这个用户已经存储在静态的map中了,这样用户会被踢下线,而且只有等到session消失时才能在登录(解决方法,刷新时用户的sessionid是不变的,在这比较一下用户的此时的sessionid和存储的sessionid如果相等则也可登录)
分享到:
相关推荐
Vue@某人,At某人,仿新浪微博@某人,@user,艾特,艾特某人
某人关于电子商务网站数据分析的总结.pdf
1、资源内容:机器学习作业-利用对数几率回归进行判断某人是否患有心脏病+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行...
欧零3.3开源(某人导航就是二开这个的).zip欧零3.3开源(某人导航就是二开这个的).zip欧零3.3开源(某人导航就是二开这个的).zip欧零3.3开源(某人导航就是二开这个的).zip欧零3.3开源(某人导航就是二开这个的...
某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。某人的blog,很不错。...
DirectX, 某人的学习笔记.DirectX, 某人的学习笔记.
读取某人的消息列表,
某人时间管理课程.doc
献给某人的18岁.exe
某人资部门工作总结.docx
某人推出花茶工艺范文.docx
某人行天桥施工方案.docx
写某人作文开头方法.doc
压缩感知某人博客个人见解 解释了压缩感知的具体问题并对其应用进行了预见性猜测
某人
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是"晒网"。
某人行天桥承载能力实验分析,张哲,姜霖,某人行天桥闲置多年后欲恢复使用,为弄清该桥的承载能力以及使用性能,基于通用有限元程序软件进行理论计算,同时根据理论计算结
某人保公司新产品发布会.pptx
某人代挂系统,作者刚更新的1.3,免受权 请自行查看详细状况,决议能否要运用。