//以下是主页面的js代码,转的
<script type="text/javascript">
//页面即将关闭事件
function window.onbeforeunload()
{
//用户点击浏览器右上角关闭按钮或是按alt+F4关闭
if(event.clientX > document.body.clientWidth && event.clientY<0 || event.altKey)
{
location.href="UserInfoServlet?flag=exit";
}
//用户点击任务栏,右键关闭。s或是按alt+F4关闭
else if(event.clientY > document.body.clientHeight || event.altKey)
{
location.href="UserInfoServlet?flag=exit";
}
//其他情况为刷新
else
{
}
}
</script>
//以下是servlet里的代码,自己写的
else if(flag.equals("exit"))
{
if(session.getAttribute("currentUser")!=null)
{
String username=((UserInfo)session.getAttribute("currentUser")).getYhName();
//从全局对象里移除该用户
List<UserInfo> list=(List<UserInfo>)application.getAttribute("allOnLineUsers");
for(int i=0;i<list.size();i++)
{
UserInfo u=list.get(i);
if(username.equals(u.getYhName()))
{
list.remove(i);
break;
}
}
//将改变后的全局集合重新放入全局对象
application.setAttribute("allOnLineUsers",list);
//从session里移除当前用户
session.removeAttribute("currentUser");
}
else
{
//跳转
request.getRequestDispatcher("login/login.jsp").
forward(request,response);
}
}
分享到:
相关推荐
在做一些关于会员在线的问题时,往往我们要根据览器是否关闭来判断用户是否下线,然后再从session和application中将此用户移除。 由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况: 1.真正的关闭浏览器...
CaptureIEEvent(浏览器事件捕获控件测试程序)
C# Winform在MDI中打开一个子窗体关闭上一个子窗体
捕获网页关闭事件捕获网页关闭事件捕获网页关闭事件捕获网页关闭事件
文件只是几句JS代码,看了就明白。直接把这个方法放到JS中就OK了。
android在产品上线以后为了能够实时捕获异常,需要写一个异常捕获的类,这个类在你遇到异常的时候会执行uncaughtException这个方法,然后你就可以对异常进行一些操作。
e.returnValue = '关闭提示'; } // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+ return '关闭提示'; }; 2、在生命周期钩子中注册监听事件 methods: { beforeunloadHandler (e) { // ... } } 在 mounted
能在窗口不是活动状态下捕获键盘事件
自己编写异常类型 ,自定义错误异常进行全局捕捉。实现项目全局的拦截定义输出。。。
springboot全局捕获异常springboot全局捕获异常springboot全局捕获异常
全局异常捕获,并保存在本地,用户再次打开可以传到服务器
安卓全局异常捕获
ie事件捕获控件,监视浏览器到程序,ie打开窗口 提前截获 组织打开弹出窗口
android为了防止应用崩溃 进行全局的捕获一下
主要介绍了C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现,需要的朋友可以参考下
Android捕获全局异常并写日志保存到sd卡,捕获异常消息后输出这个消息,可避免APP强制退出,抛出NullPointException玩玩哈,捕获全局异常是因为有的异常我们捕获不到,捕获时我们采用同步方法,以免单例多线程环境下...
vb.net全局错误全局异常处理捕获,调用非常简单,再也不用担心意外错误!
android全局异常捕获 exception_global
可以利用C#来捕获Windows的关机事件,里面有详细的代码