`
cookieandsession
  • 浏览: 20306 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自定义session扫描器

    博客分类:
  • j2ee
 
阅读更多
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Timer;
import java.util.TimerTask;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionScanner implements HttpSessionListener, ServletContextListener {
	private List<HttpSession> list = Collections.synchronizedList(new LinkedList<HttpSession>());
	private Object lock = new Object();

	public void sessionCreated(HttpSessionEvent se) {
		HttpSession session = se.getSession();
		System.out.println(session + "被创建了");
		synchronized (lock) {
			list.add(session);
		}
	}

	public void sessionDestroyed(HttpSessionEvent se) {
		HttpSession session = se.getSession();
		System.out.println(session + "被销毁了");
	}

	public void contextInitialized(ServletContextEvent sce) {
		Timer timer = new Timer();
		timer.schedule(new MyTimerTask(list, lock), 0, 1 * 60 * 1000);
	}

	public void contextDestroyed(ServletContextEvent sce) {

	}

}

class MyTimerTask extends TimerTask {
	public List list;
	private Object lock;

	public MyTimerTask(List list, Object lock) {
		this.list = list;
		this.lock = lock;
	}

	public void run() {
		synchronized (lock) {
			ListIterator it = list.listIterator();
			while (it.hasNext()) {
				HttpSession session = (HttpSession) it.next();
				if ((System.currentTimeMillis() - session.getLastAccessedTime()) > 1 * 60 * 1000) {
					session.invalidate();
					it.remove();
				}
			}
		}
	}
}
分享到:
评论

相关推荐

    C#基于Twain协议调用扫描仪.zip

    此外,考虑到用户体验,你还可以自定义扫描界面,避免弹出扫描仪的默认界面。 总的来说,C#结合Twain协议为开发者提供了一种高效且灵活的方式来控制扫描仪。通过学习和实践,你可以创建自己的图像获取应用,满足...

    三歪教你学习过滤器和监听器1

    - 自定义Session扫描器:分析Session内对象的变化,实现特定业务逻辑。 9. **面试题与知识点** - 过滤器的作用和用法:包括但不限于字符编码转换、权限控制、数据过滤等。 - web.xml的作用:是Java Web应用的...

    自定义实现二维码的生成器和扫描器还有第三方实现

    本文将详细介绍如何在iOS中自定义实现二维码生成器和扫描器,并探讨第三方库的使用。 首先,我们要了解二维码的基本原理。二维码(Quick Response Code)是一种二维条形码,能存储比传统条形码更多的信息,包括文字...

    iOS 7 调用系统自带的二维码功能进行扫描

    在iOS 7中,苹果引入了内置的二维码(QR Code)扫描功能,使得开发者能够方便地集成这一特性到自己的应用程序中,为用户提供...在实际开发中,还可以结合其他UI组件,如按钮和指示器,以完善整个扫描流程的交互设计。

    二维码扫描 ios7

    在这里,我们设置了元数据类型为`.qr`,意味着我们的扫描器只会关注二维码。 为了接收到扫描结果,你需要遵循`AVCaptureMetadataOutputObjectsDelegate`协议,并实现`captureOutput(_:didOutput:from:)`方法: ```...

    iOS二维码的生成和扫描Demo

    以下是一个基本的二维码扫描器实现: ```swift import AVFoundation class QRScannerViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate { var captureSession: AVCaptureSession? var ...

    拍照器扫描

    在iOS开发中,"拍照器扫描"涉及到的主要技术点包括使用UIImagePickerController来实现相机功能,以及对扫描和图像处理的相关操作。下面将详细讲解这些知识点。 首先,`UIImagePickerController`是苹果提供的一个...

    iOS 二维码扫描

    此外,为了提高用户体验,可以添加动画效果,比如当扫描到二维码时显示一个成功的指示器。 以上就是使用AVFoundation框架在iOS中实现二维码扫描的基本步骤。这个过程可以进一步扩展,例如支持多种类型的条形码,...

    NTKO附件管理控件

    NTKO附件管理控件(多文件上传下载在线编辑扫描控件)是拥有完全独立...★ 支持直接从扫描仪输入文件[需要购买扫描支持模块] 通过AddFromScanner方法,控件支持从扫描仪中直接扫描图片到控件中。[需要购买扫描支持模块]

    取消磁盘的自动扫描

    打开注册表编辑器(regedit),导航到`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager`。 - 找到`BootExecute`键值,双击打开,将内容改为`autocheck autochk *`(如果没有,可以新建一个...

    在iOS和Android中使用二维码ZXing库及常见问题解决和整合后的代码

    在iOS中,创建一个扫码视图控制器: ```swift import ZXingObjC class QRScannerViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate { var captureSession: AVCaptureSession? ...

    QRCodeByAVFoundation:swift 二维码扫描器

    这个项目"QRCodeByAVFoundation"是基于Swift语言和Apple的AVFoundation框架实现的一个二维码扫描器的示例。AVFoundation是苹果提供的一套强大的多媒体处理框架,它包含了音频、视频、图像处理等功能,其中的...

    ios-QRCodeScanView-master.zip

    然后,在需要使用扫描功能的控制器中引入头文件,并实例化`QRCodeScanView`,设置其frame以覆盖期望的扫描区域。 ```swift import QRCodeScanView class ViewController: UIViewController { let scanView = ...

    spring_mvc控制网站登录用户失效后跳登录页面

    本文将详细介绍如何通过编写自定义拦截器以及在Spring MVC项目中进行必要的配置来实现这一功能。 #### 自定义拦截器:`SessionInterceptor` 首先,我们需要创建一个自定义拦截器`SessionInterceptor`来检查当前...

    iOS 二维码生成器

    在iOS平台上,二维码生成器是一种应用工具,它允许用户创建自定义的二维码,这些二维码可以包含各种信息,如文本、网址、联系人信息、Wi-Fi网络设置等。本篇文章将深入探讨二维码技术以及如何在iOS上开发一个二维码...

    springboot整合shiro.zip

    8. **会话管理**:Shiro提供了会话管理功能,如果需要自定义session存储机制,如Redis、Memcached,可以通过实现SessionDAO接口并配置到SecurityManager中。 9. **测试验证**:通过模拟用户登录、访问受保护资源等...

    SNMP探测器 关于SNMP的Java编程

    SNMP探测器可能包含多个这样的功能,比如批量获取设备信息、定时扫描网络、存储和分析结果等。`SnmpDetect`可能是一个包含这些功能的项目或类名,里面可能有不同方法分别处理不同的SNMP操作。 通过深入学习SNMP4J库...

    电脑软件(仅供备用)取消磁盘的自动扫描.rar

    打开注册表编辑器(regedit),然后导航到`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager`,找到`BootExecute`键值,这里存储了系统启动时执行的命令。 3. **取消自动磁盘扫描**: - 如果...

    IOS二维码获取代码

    在实际应用中,你可能还需要处理权限请求(如访问摄像头),错误处理,以及优化用户体验(如提供扫描指示器,处理扫描结果的动画等)。另外,如果你需要生成二维码,可以使用`UIImage+QRCode`等第三方库,或者使用`...

Global site tag (gtag.js) - Google Analytics