HTML code
function end(){
alert("aaa");
//可以调用一个form的submit()方法,或者调用一个ajax 向后台提交请求
}
MyHtml.html------解决方案--------------------
session监听类:Java codepackage com.banner.servlet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
public class OnlineUserBindingListener implements HttpSessionBindingListener {
String username;
public OnlineUserBindingListener(){
}
public OnlineUserBindingListener(String username){
this.username=username;
}
public void valueBound(HttpSessionBindingEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
// 把用户名放入在线列表
List onlineUserList = (List) application.getAttribute("onlineUserList");
// 第一次使用前,需要初始化
if (onlineUserList == null) {
onlineUserList = new ArrayList();
}
onlineUserList.add(this.username);
application.setAttribute("onlineUserList", onlineUserList);
}
public void valueUnbound(HttpSessionBindingEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
// 从在线列表中删除用户名
List onlineUserList = (List) application.getAttribute("onlineUserList");
onlineUserList.remove(this.username);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(this.username + "退出系统。");
System.out.println("退出时间"+sdf.format(new Date()));
}
}
------解决方案--------------------
刚才看了篇文章 关于判断退出浏览器的 用Javascript代码window.oncolose来监视浏览器的关闭动作,然后向服务器发送一个请求来删除session。不过对于浏览器崩溃或强行杀死进程等非常手段是不能实现的。。。。 具体的怎么操作自己再百度下吧!!!!
------解决方案--------------------
http://topic.csdn.net/t/20010528/21/138139.html
------解决方案--------------------
哈哈,这个问题我上个项目也遇到了,好在我解决了,解决这个问题有几个步骤
1、有拿到当前登录者的信息,如userid,这个容易,用session,当用户一进入页面时,用jspuserbean或servlet更新数据库中的一个字段,就是是否在线,(如isonline,0是离线,1是在线,这里isonline=1)。
2、用dwr将session中用户名字显示出来,在页面中不断刷新,dwr有这个功能。
3、写一个session监听。
4、将web.xml中session的过期时间设置为1分钟,这样用户只要关了浏览器,session在1分钟后将消失,session监听器将监听到,些时更新数据库isonline=0.
上面的第2个步骤有很多实现方式,其实这一步是最重要的,我一开始第2步用的jqurey的心跳提示,不会的话可以网上查下,很简单,后来觉得dwr更正规一些,嘿嘿,就学了下dwr,3个小时搞定。
再有问题可以加我qq:79312510
------解决方案--------------------