各位高手们 本人现在有个特别棘手的问题 需要各位高手帮忙 就是当点击关闭浏览器后 让其他用户的页面刷新也可以看到该用户已退出该系统 并将该状态该为离线。
能附上代码 更好 谢谢。
能附上代码 更好 谢谢。
解决方案 »
- Struts2配置出错!
- 菜鸟跪求,通过servlet访问jdbc把数据库内容显示在网页上,为什么我的网页上什么也没显示,下面是代码
- ssh集成 spring异常(jar包兼容性问题)?
- Spring配置文件帮我解释下
- ★★★大虾们,急救,jsp页面内传值问题★★★
- 这种选项卡形式的web页面,前台使用什么技术开发的?
- spring 下的如何获得hibernate的Criteria和Query呢?我通过session来获得,但似乎不方便。
- hibernate+oracle
- 消息驱动调用问题
- Cannot find class [org.springframework.scheduling.timer.ScheduledTimerTask] for
- LOG4J配置写入数据库的一个疑问,问问大家
- ssh2配置中遇到Could not load com.mysql.jdbc.SQLError问题
关闭浏览器服务器应该不能确定用户已退出话,也只能等session过期才能确定用户已经断开连接。
除非用户点击退出系统,然后后台作处理才能实时更新状态
对于浏览器异常关闭,只能等session过期,然后写个监听器,当session过期时做一些操作,
下面这个是我以前毕业设计里写的监听器
package com.hisoft.util;import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;import com.hisoft.action.UserAction;
import com.hisoft.model.User;public class MyListener implements HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent se) {
if ("user".equals(se.getName())) {
UserAction.count++;
User user = (User) se.getValue();
System.out.println(user.getName() + " has login");
UserAction.onLineUser.add(user.getName());
System.out.println(UserAction.onLineUser.size());
}
} public void attributeRemoved(HttpSessionBindingEvent se) {
// TODO Auto-generated method stub
if ("user".equals(se.getName())) {
User user = (User) se.getValue();
System.out.println(user.getName() + " has logout");
UserAction.onLineUser.remove(user.getName());
System.out.println(UserAction.onLineUser.size());
UserAction.count--;
}
} public void attributeReplaced(HttpSessionBindingEvent se) {
// TODO Auto-generated method stub }}