`

一个对HttpSession用户进行管理的类

 
阅读更多
   1. public class SessionCounter implements HttpSessionListener{  
   2.  
   3.     private static List<HttpSession> sessionsList = Collections.synchronizedList(new LinkedList<HttpSession>()); 
   4.  
   5.  
   6.     @Override 
   7.     public void sessionCreated(HttpSessionEvent event) { 
   8.     } 
   9.  
  10.     /**
  11.      * session销毁时从sessionList移除
  12.      */ 
  13.     @Override 
  14.     public void sessionDestroyed(HttpSessionEvent event) { 
  15.         LoginUser userObject = null; 
  16.         if (SCutil.isNotEmpty(event.getSession().getAttribute("userObject"))) { 
  17.             userObject = (LoginUser) event.getSession().getAttribute("userObject"); 
  18.         } 
  19.  
  20.         sessionsList.remove(event.getSession()); 
  21.          
  22.         Long userId = null; 
  23.         if(userObject != null){ 
  24.             userId = userObject.getUserId(); 
  25.         } 
  26.         if(userId != null && userId != -1 ){ 
  27.             SCutil.Println(DateUtil.getDateTime()+":用户被T除,ID为:"+userId); 
  28.             //加入到T除队列 
  29.             WaitForKillContainer.addUserId(userId); 
  30.         } 
  31.  
  32.     }    
  33.  
  34.     /**
  35.      * 清除在线注册用户信息
  36.      * @param se
  37.      */ 
  38.     public static void destroySession(HttpSession se) { 
  39.         LoginUser userObject = (LoginUser) se.getAttribute("userObject"); 
  40.         if (userObject != null) { 
  41.             WaitForKillContainer.addUserId(Long.parseLong(userObject.getUserId())); 
  42.             se.removeAttribute("userObject"); 
  43.         } 
  44.     } 
  45.  
  46.     /**
  47.      * 用户登陆时加入sessionList
  48.      * @param session
  49.      * @return
  50.      */ 
  51.     public static Users createSession(HttpSession session) { 
  52.         LoginUser userObject = (LoginUser) session.getAttribute("userObject"); 
  53.         Users eu = null; 
  54.         eu = UserService.UpdateUserLoginFre(userObject); 
  55.         userObject.setUserName(eu.getUserName()); 
  56.         userObject.setUserId(eu.getUserId() + "");   
  57.         sessionsList.add(session); 
  58.         return eu; 
  59.     } 
  60. } 
分享到:
评论

相关推荐

    httpSession

    在Web应用程序中,当用户打开浏览器访问网站并登录后,服务器会为该用户创建一个session对象,并将用户的一些信息(如用户名、购物车等)存储在这个对象中。通过在HTTP请求头中添加一个名为JSESSIONID的Cookie,...

    HttpSession的使用

    每当用户访问网站并进行登录或其他需要保存状态的操作时,服务器会创建一个新的`HttpSession`对象。这个操作通常由Servlet或者Controller层的代码完成。可以通过调用`HttpServletRequest`的`getSession()`或`...

    Web_4_状态管理Cookie和HttpSession1

    Cookie通常包含一个名称(NAME)和一个值(VALUE),并且可以设置存活时间(Max-Age)以及作用域(Path),以控制其可见范围和有效期。 创建Cookie的Java代码如下: ```java Cookie ck = new Cookie("name", "value...

    javaweb 实现用户在线管理

    在JavaWeb开发中,用户在线管理是一个核心功能,它涉及到用户认证、授权、会话管理等多个方面。这篇博文“javaweb 实现用户在线管理”很可能是分享了如何在JavaWeb环境中实现用户登录、保持会话状态以及进行权限控制...

    servlet做的后台用户管理

    这个项目是一个很好的实践平台,通过它你可以深入理解Servlet和JSP的工作原理,同时掌握用户管理的核心功能和安全实践。通过实际编码,你可以提升Java Web开发技能,为更复杂的Web应用程序打下坚实基础。

    java用户管理模块

    Java用户管理模块是一个常见且重要的系统组件,尤其对于初学者来说,它提供了了解Web开发基础,尤其是JSP(JavaServer Pages)技术的良好实践机会。在这个模块中,开发者通常会实现用户注册、登录、权限控制、密码...

    纯Servlet实现用户管理系统(入门实例,深刻认识Servlet)

    在这个入门教程中,我们将探讨如何利用Servlet和JDBC(Java Database Connectivity)技术来构建一个基础的用户管理系统。 首先,Servlet是一个Java类,它扩展了`javax.servlet.Servlet`接口或实现了`javax.servlet....

    JavaWeb 简单用户管理系统

    在本项目"JavaWeb简单用户管理系统"中,我们主要探讨的是如何使用传统的JavaWeb技术,即JSP(JavaServer Pages)和Servlet,来构建一个基本的后台管理系统。这个系统涵盖了多个核心功能模块,包括用户管理、角色管理...

    servletapi.rar_HttpSession jar_Java jar包_javaee.jar_servletAPI

    在Web应用中,当用户打开一个网站并进行一系列操作时,HttpSession可以帮助保持用户的登录状态、购物车信息等,即使用户在不同的网页之间跳转。通过调用HttpServletRequest对象的getSession()方法,开发者可以创建或...

    纯servlet写的用户管理系统

    通过以上知识点,我们可以构建一个完整的用户管理系统,尽管纯Servlet实现可能相对复杂,但它能让我们深入理解Web服务器的工作原理和Java Web开发的基础。在实际项目中,往往会选择使用框架(如Spring MVC)来简化...

    jsp技术用户管理案例

    总结来说,"jsp技术用户管理案例"是一个实用的学习资源,它涵盖了JSP基础、用户注册与登录逻辑、数据库操作以及可能的权限管理等方面的知识。对于学习和理解JSP开发动态Web应用,这是一个很好的起点。开发者可以通过...

    第一节课,用户管理-后端测试通过

    在数据库层面,通常会有一个用户表来存储这些信息,使用ORM框架如Hibernate或MyBatis进行数据库操作。 4. **密码存储与加密(Password Storage & Encryption)**:为了保护用户信息安全,密码通常需要加密存储。...

    ServletHttpSession DEMO

    它允许服务器为每个用户分配一个唯一的ID(session ID),并将其存储在用户的Cookie或URL重写中,以便在后续请求中识别用户。 **3. 创建Session** - `request.getSession()`:如果当前请求没有对应的Session,此...

    使用servlet实现简单用户登录

    在本文中,我们将深入探讨如何使用Servlet技术来实现一个简单的用户登录功能。Servlet是一种Java编程接口,用于扩展服务器的功能,特别是在Web应用中处理HTTP请求。在这个项目中,我们结合了Servlet与JSP(Java...

    HttpSessionBindingListener获取在线用户数(转)

    当用户打开一个网页并进行一系列操作时,如果服务器需要记住用户的状态,就会创建一个`HttpSession`对象。每个用户对应一个唯一的`sessionId`,服务器通过这个ID来识别不同的用户。 `HttpSessionBindingListener`是...

    HTTPSession-开源

    HTTPSession库允许开发者跟踪和管理HTTP请求的来源,以便实现后退、前进等导航功能,或者进行URL重写和路由处理,提高用户体验。 4. **导航历史记录**: 这一特性允许开发者记录用户的浏览历史,以便在需要时恢复...

    纯servlet用户管理系统

    这可能是一个包含整个用户管理系统源代码的目录或者项目文件。在这个文件夹下,我们可以预期找到以下关键组成部分: 1. **Servlet类**:处理用户请求的Java类,如`UserServlet`,用于注册、登录、修改用户信息等...

    Servlet会话管理与用户认证.doc

    会话管理的一个重要特性是它能够在用户浏览器关闭后仍能保持状态,直到会话过期或者被显式地失效。默认情况下,Servlet容器会根据配置设置一个默认的会话超时时间,超过这个时间,会话将自动失效。 接下来,我们...

    jsp中监听器实现在线用户统计

    2. **OnlineUserList.java** - 这个类可能是一个静态类或者单例模式的类,用来保存当前在线用户的信息。它可以使用集合(如ArrayList或Vector)来存储用户的用户名,同时提供添加、删除和查询用户的方法。 3. **...

    商店商品管理系统 大学生课程设计 课设作业 Java Web JDBC MySQL jsp

    在商品管理系统中,用户可以通过界面进行这些操作,后台的Java代码通过JDBC实现对MySQL数据库的CRUD操作。 8. **会话管理**: 为了保持用户状态,系统可能使用了会话管理技术,如HttpSession对象,以跟踪用户在不同...

Global site tag (gtag.js) - Google Analytics