java离开页面判断,如何判断用户离开了界面

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

------解决方案--------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值