有些用户要求记录用户在线时长,刚做过这个功能,拿出来跟大家共享。
写SessionListener类做处理方法,该类需要继承HttpSessionBindingListener接口来侦听用户登录还是退出,或者是session失效。
private SysUser user;//系统用户
public SessionListener(SysUser user)
{
this.user = user;
}
//用户登录,信息记录在在线用户列表onlineUserLis中
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();
application.setAttribute("onlineUserList", onlineUserList);
}
onlineUserList.add(user);
System.out.println((new StringBuilder(String.valueOf(user.getUserName()))).append("登录。").toString());
}
用户退出时记录时间并写入数据库
public void valueUnbound(HttpSessionBindingEvent event)
{
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
try
{
float onlineTime = 0.0F;
SimpleDateFormat df = new SimpleDateFormat("yyyy-M-d HH:mm:ss");
Date begin =df.parse(user.getLoginTime());
Date end = new Date();
long between = (end.getTime() - begin.getTime()) / 1000L;
long day1 = between / 0x15180L;
long hour1 = (between % 0x15180L) / 3600L;
long minute1 = (between % 3600L) / 60L;
onlineTime = (float)(day1 * 24L + hour1) + (float)minute1 / 60F;
SysRzList rzl = new SysRzList();
System.out.println(String.format("%10.1f",onlineTime));
//记录入库,最小单位0.1小时,也就是6分钟,一般是足够了。
}
catch(Exception ex){
ex.printStackTrace();
}
//将在线用户表中删除该用户
List onlineUserList = (List)application.getAttribute("onlineUserList");
onlineUserList.remove(user);
}
分享到:
相关推荐
通过以上方法,我们可以有效地记录用户的页面停留时间,以及创建具有专业视觉效果的遮罩层,从而提高用户体验和网站数据分析的准确性。在实际开发中,还需要考虑性能优化、兼容性和易用性等问题,确保功能的稳定性和...
在IT领域,记录用户停留时间是一项非常重要的任务,它能够帮助我们分析用户行为,优化网站体验,提升转化率。在这个项目中,开发者使用了jQuery这一流行的JavaScript库来实现这一功能。接下来,我们将深入探讨如何...
当用户首次访问网站并创建Session时,可以通过Session_onStart事件来记录用户开始浏览的时间。在global.asa文件中,你可以设置以下代码: ```vbscript Sub Session_onStart() ' 保存用户开始浏览的时间 Session(...
要查看登录 Oracle 数据库的用户记录,可以创建一个临时日志表,并建立一个数据库表触发器来记录用户的登录行为。 创建临时日志表 首先,需要创建一个临时日志表来存储用户的登录记录。可以使用以下 SQL 语句来...
SAP系统提供了一个强大的审计机制,可以记录用户的各种操作,包括登录、查询、修改等。为了查看用户的登录记录,我们需要设置审计参数文件。在SAP系统中,我们可以使用T-code SM19来创建审计参数文件。 在SM19中,...
### JavaScript 记录用户最后登录时间 在网页应用开发中,记录用户的登录信息是一项非常重要的功能,这不仅可以帮助我们分析用户行为,还可以用于提供个性化的用户体验。本文将详细介绍如何使用JavaScript来实现...
6. **进程控制**:在用户时间结束时,程序需要能够调用操作系统API(如`LockWorkStation`)来锁定屏幕。这涉及到进程和线程的管理,以及对WinAPI的调用。 7. **异常处理**:为了确保程序的健壮性,需要捕获和处理...
总之,“开机自动记录启动时间程序”是一种实用的小工具,它通过简化查看开机时间的过程,帮助用户更好地管理和监控他们的电脑系统。尽管这个程序可能相对简单,但其背后涉及的编程技术和系统知识却是相当丰富的。
标题中的“上网计时可以自动记录上网时间”指的是在互联网使用过程中,有一种技术或软件能够自动追踪并记录用户的在线时间。这种功能对于那些需要管理自己或他人网络使用时间的情况非常有用,例如家长监控孩子的上网...
而SQL(结构化查询语言)则是用于管理关系数据库的标准语言,对于记录用户登录时间这样的任务,SQL与易语言的结合可以实现高效且精确的解决方案。本文将深入探讨如何利用SQL和易语言来记录用户登录时间。 首先,...
"记录每一次按下按钮的时间"这个项目,就是一种常见的用户交互实现,它涉及到事件处理、时间戳记录以及文件操作等多个知识点。以下是对这些技术点的详细解释: 1. **事件处理**:在窗口上创建一个按钮,这个过程...
在本压缩包"记录设备启停时间(报表).zip"中,重点讨论的是如何利用组态王来追踪和报告设备的启停及运行时间,这对于设备管理和维护来说至关重要。 在工业生产环境中,了解设备的工作状态是优化生产流程、提高效率...
标题中的“网络状态测试工具 PING 掉包记录 测试 超时时间可设置”表明这是一款基于VB(Visual Basic)编写的网络诊断工具,主要用于检测网络连接的稳定性、速度和丢包情况。该工具提供了自定义超时时间的功能,以...
### Windows 7系统详细记录用户登录时间的知识点 #### 一、引言 随着信息技术的发展,个人电脑成为了人们生活中不可或缺的一部分。为了确保信息安全和个人隐私不被侵犯,掌握系统的登录历史变得尤为重要。对于...
2. 时间戳:用户活动的时间记录,可能包括帖子创建时间、评论时间等。 3. 子版块ID:用户活动所在的子版块标识,揭示了用户兴趣的多样性。 4. 帖子/评论内容:用户发表的文字,可以用于文本分析,如情感分析、主题...
Spring Security 记录用户登录时间功能实现 Spring Security 框架提供了强大的身份验证和授权功能,然而在实际应用中,我们还需要记录用户的登录时间,以便于日后进行登录记录的追踪和分析。在本文中,我们将详细...
在进行网络故障排查时,`ping`命令加时间并记录日志的功能尤其重要,因为它可以帮助我们收集详细的网络性能数据,以便分析和解决问题。 要使`ping`命令显示时间并记录日志,我们可以使用以下命令格式: ```cmd ...
3. 出生日期:通过这个字段,我们可以计算用户的年龄,进一步分析年龄与消费之间的关系,比如年轻人可能更倾向于在线购物,而年长者可能更倾向于传统购物方式。 结合这两个文件,我们可以进行以下分析: 1. **用户...
其中,记录用户的登录信息(如登录时间、用户名和客户端IP地址等)可以帮助管理员更好地监控系统访问情况,及时发现潜在的安全威胁或异常行为。本文将通过一个具体的例子来展示如何在Oracle数据库中创建一个触发器,...
这里的“绿色软件”可能是指这个记录启动和关闭时间的工具,它不会对用户的系统造成任何负面影响。 事件查看器(Event Viewer)的使用方法如下: 1. 打开“控制面板”或使用“Win + R”快捷键输入“services.msc”...