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如果相等则也可登录)
分享到:
相关推荐
- 句子4说明机器人可以协助汽车制造并重复简单的任务。 - 句子5预测未来人类将避免做无聊的工作,而机器人不会感到厌倦。 - 句子6展示了科学家正试图让机器人模仿人类并执行与我们一样的任务。 通过学习这些知识...
在IT领域,虽然这个话题可能与传统的技术内容不太相关,但它仍然可以关联到数据处理、信息管理和决策支持系统。例如,使用电子表格软件(如Microsoft Excel)可以更高效地创建、管理和分析这样的投票数据,而投票...
29. "Something's come up." 说明有突发事件或事情需要处理。 30. "Let's get to the point." 要求直接进入主题,不浪费时间。 31. "Keep that in mind." 提醒对方记住某个重要事项。 32. "That was a close call." ...
[说明]pull someone's leg是英语中的习惯表达,意味着开玩笑或戏弄某人,而非字面上的拉扯腿。这些例子展示了英语翻译中理解固定短语、俚语和口语表达的重要性。在翻译时,必须注意这些特定的短语,因为它们往往有...
计算机信息系统设计与分析知识点总结 本资源摘要信息将对计算机信息系统设计与分析的相关知识...输入设计的原则包括最小量原则和简单性原则,保证满足处理要求的前提下使输入量最小,输入的准备、输入过程应尽量容易。
// 如果样式是 mydate,说明没有签到,可以绑定签到事件,不可重复签到 $(".mydate").click(function () { var date = $(this).attr("day"); var year = $(this).attr("year"); // 后台处理签到 $.post(url, ...
40. **at sb.'s disposal** - 全权交由某人处理,意为“由某人支配,由某人使用;由某人做主”。 41. **at the cost of** - 付出代价,意为“以…为代价”。 42. **at the same time** - 同时进行,也可表示转折,...
8. **illustrate**:说明,用例子或图像解释概念。 9. **singleton**:单例,在面向对象编程中,保证一个类只有一个实例的模式。 10. **mutable**:可变的,形容可以修改的对象,如列表、字典。 11. **...
- **解析**:表示无法联系到某人,“我联络不上他!”用于描述尝试联系但未果的情况。 #### 42. I cross my heart! - **解析**:表示真诚承诺,“我发誓是真的!”用于保证所说为真。 #### 43. I don't mean it! -...
- **名词**: 集合(set)是一种数学概念,表示不重复元素的无序组合。在编程中,集合常被用来处理数据结构问题。 #### 9. key - **名词**: - 键:键盘上的物理按键。 - 关键字:在编程语言中具有特殊含义的保留...
从键盘输入数据,建立数据文件student.dat,然后,利用C++编程完成如下处理: (1)对学生姓名或学号进行查询,显示其信息 。 (2)对所有学生,按班级计算每一科平均成绩。 (3)分别按英语、数学、程序设计...