最近学习JSP...遇到个问题目的: 实现在线用户的集中管理我的思路: 
1.使用登录页面,将用户的昵称添加到application的一个List集合当中.
2.List中存放每一个登录用户,用户对象的属性有{ 昵称(不重复), 在线状态(0表示在线, 1表示离线) }
3.用户登陆后,将自己的信息添加到List将在线状态设为0
4.登录用户页面每隔3秒刷新List中对应自己的记录,将在线状态设为0.
5.有个JSP页面每隔5秒刷新application中的List, 将用户在线状态为0的改为1, 将用户在线状态为1的从List中移除.
注明:这样的思路是为了防止用户没有执行登出操作,直接关闭浏览器,或者死机,断电重启等一些意外状态.问题:
不知道如何实现第5步骤.
1.如何能能够将一个JSP在该项目启动时自动运行.
2.如何在执行第5步骤的操作时每隔5秒从获取List并将其作为参数传入方法,最后再将扫描后的List交给application.补充说明:
我使用MyEclipse7.5作为开发工具
本人新手,胡乱弄的~~如果有哪位可以给谢帮助不胜感激~~或者哪位有更好的方法,思路~~菜鸟虚心求教~~谢谢~~

解决方案 »

  1.   

    这个可以用ServletContextListener 加timer来实现
      

  2.   

    纯监听器解决:
    ServletContextListener的作用是某个web应用启动/停驶时执行指定方法
    ServletSessionListener的作用是建立/销毁session时执行指定方法。
    1。使用ServletContextListener监听器,在web应用启动时初始一个list放到application域中,停止时移除list。
    2.使用ServletSessionListener监听器,在对某个用户创建session时,向list中添加用户对象,当用户长时间没操作,超过session对大的寿命时,这个session会自动被销毁,这时从list删除用户对象。具体用法看文档帮助。
    这样用户对象的状态属性可以不用了。