`
ylz4647
  • 浏览: 49938 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Web系统超时监听

阅读更多
本文转载于:http://haoi77.iteye.com/blog/197101


在Web系统中有时会有监听超时的需要。当用户一定的时间内不在当前Web系统进行任何操作时,系统需要做出反应。例如弹出提示对话框,或是将用户退出登录状态。

     由于用户在界面的操作往往不会与后台进行交互,因此在后台采用SessionListner的监  听方式无法满足该需求。这里建议使用javascript来实现此项功能。单页面与框架页面的超时监听分开介绍:
   
1、单页面超时监听
  

超时监听的javascript程序如下:

var maxTime = 300;  //最大计时值为300S
var timeOutValue = maxTime;

/**
* 计时监听程序,在页面初始化时调起即可
*
*/
function timeListener()
{
   timeOutValue = timeOutValue - 1;
   if(timeOutValue<=0)
   {
       timeOutValue = maxTime;
       alert("尊敬的用户,您已经"+ maxTime/60+" 分钟没有操作...");      
   }
   setTimeout("timeListener()",1000);   //每隔一秒监听一次  
}

对于单页面的超时监听,在页面初始化时调用timeListener就能搞定( <body onload="timeListener()"> )。


2、框架页面超时监听

  但是对于框架页面,如何处理?例如需要对下面一个简单的框架页面进行监听:

<frameset rows="80,*" cols="*" frameborder="no" border="0" framespacing="0">
  <frame  src="top.htm" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" />
  <frameset cols="80,*" frameborder="no" border="0" framespacing="0">
    <frame  src="left.htm" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" />
    <frame  src="main.htm" name="mainFrame" id="mainFrame" />
  </frameset>
</frameset>

    该框架有3个frame,当用户在任意一个框架区域发生操作都能够被监听到。如何实现?
这里推荐借助JQuery库的来实现,JQuery详细的使用方法请登录http://jquery.com/

    具体实现如下:

    在top.htm中编写"计时监听"程序和"监听框架各个区域动作"程序:

<script type="text/javascript" src="../js/jquery.js"></script>   //导入jQuery库文件
<script type="text/javascript">
var maxTime = 300;  //最大计时值为300S
var timeOutValue = maxTime;

function timeListener()
{
   timeOutValue = timeOutValue - 1;
   if(timeOutValue<=0)
   {
       timeOutValue = maxTime;
       alert("尊敬的用户,您已经"+ maxTime/60 + " 分钟没有操作...");      
   }
   setTimeout("timeListener()",1000);   //每隔一秒监听一次  
}

/**
*页面初始化时加载计时监听程序
*/
$(document).ready(function()
{
   timeListener();
});


/**
*监听topFrame区域的各种动作,一旦有动作发生,就重新计时
/
$(window.parent.topFrame).blur(function()
{
   timeOutValue = maxTime;
}).click(function()
{
   timeOutValue = maxTime;
}).dblclick(function()
{
   timeOutValue = maxTime;
}).focus(function()
{
   timeOutValue = maxTime;
}).keydown(function()
{
   timeOutValue = maxTime;
}).keypress(function()
{
   timeOutValue = maxTime;
}).mousedown(function()
{
   timeOutValue = maxTime;
}).mousemove(function()
{
   timeOutValue = maxTime;
}).mouseover(function()
{
   timeOutValue = maxTime;
}).scroll(function()
{
   timeOutValue = maxTime;
});


/**
*监听leftFrame区域的各种动作,一旦有动作发生,就重新计时
/
$(window.parent.leftFrame).blur(function()
{
   timeOutValue = maxTime;
}).click(function()
{
   timeOutValue = maxTime;
}).dblclick(function()
{
   timeOutValue = maxTime;
}).focus(function()
{
   timeOutValue = maxTime;
}).keydown(function()
{
   timeOutValue = maxTime;
}).keypress(function()
{
   timeOutValue = maxTime;
}).mousedown(function()
{
   timeOutValue = maxTime;
}).mousemove(function()
{
   timeOutValue = maxTime;
}).mouseover(function()
{
   timeOutValue = maxTime;
}).scroll(function()
{
   timeOutValue = maxTime;
});


/**
*监听mainFrame区域的各种动作,一旦有动作发生,就重新计时
/
$(window.parent.mainFrame).blur(function()
{
   timeOutValue = maxTime;
}).click(function()
{
   timeOutValue = maxTime;
}).dblclick(function()
{
   timeOutValue = maxTime;
}).focus(function()
{
   timeOutValue = maxTime;
}).keydown(function()
{
   timeOutValue = maxTime;
}).keypress(function()
{
   timeOutValue = maxTime;
}).mousedown(function()
{
   timeOutValue = maxTime;
}).mousemove(function()
{
   timeOutValue = maxTime;
}).mouseover(function()
{
   timeOutValue = maxTime;
}).scroll(function()
{
   timeOutValue = maxTime;
});


</script>

分享到:
评论

相关推荐

    web监听器代码--监听servlet

    2. **会话监听器**: 可以监控用户的会话状态,如检测会话超时、会话创建和销毁等,常用于实现单点登录、在线用户统计等功能。 3. **请求监听器**: 虽然Java标准API中没有直接提供请求监听器,但可以通过过滤器...

    web学习笔记 —— 监听器

    通过以上内容,我们可以了解到Web监听器在开发中的重要作用,从会话管理到系统监控,它们为开发者提供了一种灵活的机制来扩展和定制Web应用程序的行为。在实际工作中,结合源码学习和工具辅助,可以更好地掌握监听器...

    java web在线人数统计/监听

    本文将深入探讨如何使用Java Web技术来监听并统计在线人数。 1. **HTTP与Session** HTTP协议本身是无状态的,无法直接追踪用户的会话。为了在多个请求之间保持用户状态,Web服务器引入了Session机制。每当用户打开...

    Web监听器

    这类监听器能够帮助开发者捕获用户交互、系统事件或者应用程序内部的状态变化,从而实现相应的处理逻辑。例如,Servlet规范定义了多种监听器,如HttpSessionListener、ServletRequestListener等,它们可以帮助我们...

    JS之Session超时提示代码

    在Web开发中,Session是一种常见的用户会话管理机制,用于跟踪用户的交互状态。但Session具有生命周期限制,一旦超时,用户就需要重新登录。本篇文章将深入分析一个通过JavaScript(简称JS)实现的Session超时提示...

    servlet监听器案例

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定的Servlet容器事件发生时执行相应的代码。在本文中,我们将深入探讨Servlet监听器的工作原理、配置和使用,结合具体的"web.xml"配置以及JSP页面的...

    servlet 监听器范例

    在Java Web开发中,Servlet监听器(Servlet Listener)扮演着重要的角色,它是Servlet规范的一部分,允许开发者对Web应用...这个示例对于理解和实现在Java Web应用程序中进行用户管理、监控系统活动具有很大的价值。

    Web系统与技术--实验十.pdf

    综合以上内容,可以理解为:Web系统与技术实验十的核心在于学习和实践Java Servlet技术,特别是与Web应用环境相关的高级特性,比如监听器的使用、会话管理、Web应用的初始化和销毁过程等。通过这些实验,学习者能够...

    JAVA SESSION监听器

    总的来说,Java Session监听器是Web应用中不可或缺的一部分,它提供了一种透明且强大的方式来管理和优化Session的生命周期,同时也能帮助我们更好地理解和控制用户的在线行为。通过深入理解和熟练运用Session监听器...

    day18 监听器 统计在线人数,定时销毁超时session,钝化活化session,在线列表显示和踢人功能防止用户自动登录,在线支付

    在本主题“day18 监听器”中,我们将探讨如何利用监听器来统计在线人数、定时销毁超时session、实现session的钝化与活化,以及如何在系统中显示在线用户列表和实现踢人功能,从而防止用户自动登录。同时,还会涉及...

    Java Web应用开发 53 课堂案例-应用监听器统计在线人数.docx

    【Java Web应用开发 53 课堂案例-应用监听器统计在线人数】 在Java Web开发中,统计在线用户数量是一项常见的需求,这通常涉及到监听器(Listeners)的使用。在这个课堂案例中,我们将学习如何利用`...

    servlet 监听器的实现

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止时,或者在用户会话创建、销毁时。这为程序员提供了更多的控制权,使得他们能够更好地管理和监控...

    servlet监听器

    Servlet监听器是Java Web开发中的一种关键组件,主要用于监控和响应Web应用程序中的特定事件。它们是Servlet规范中定义的特殊类,能够监听ServletContext、HttpSession和ServletRequest等域对象的生命周期事件,以及...

    java web用servlet监听器实现显示在线人数

    在Java Web开发中,servlet监听器是一种用于监听应用环境、会话、请求对象等域对象事件的组件。它们可以用于检测和响应特定的事件,如会话创建、属性更改或请求开始等。本文将详细介绍如何利用servlet监听器实现显示...

    JAVA用户登录超时过滤器和文件配置

    首先,`web.xml` 是Java Web应用程序的部署描述符,用于定义过滤器、Servlet、监听器等组件。在提供的`web.xml`配置中,我们看到了一个名为`checkLoginFilter`的过滤器: ```xml &lt;filter-name&gt;checkLoginFilter ...

    监听器显示登陆用户列表,并实现踢人功能

    在Java Web开发中,监听器(Listener)是用于监听特定事件的重要组件,它们可以扩展应用程序的功能,例如跟踪用户会话、管理应用上下文等。在本主题中,我们将深入探讨如何利用`HttpSessionAttributeListener`来实现...

    使用监听器跟踪session的生命周期和session的属性

    在Java Web开发中,Session是用于跟踪用户状态的关键机制。当用户在多个页面间导航时,Session可以在服务器端保持特定用户...合理使用监听器能够帮助开发者更好地管理和优化Web应用程序,确保系统运行的稳定性和效率。

    web.xml+详细解析.rar

    《web.xml详解与应用》 在Java Web开发中,`web.xml`文件是核心配置文件,它是应用服务器启动时加载的部署描述符...通过深入学习和实践,开发者可以更好地掌控Web应用的运行逻辑,从而实现更高效、更灵活的系统设计。

Global site tag (gtag.js) - Google Analytics