`

根据sessionid获取session对象

    博客分类:
  • java
阅读更多
  <!-- sessionListener -->
  <listener>
   <listener-class>com.acca.comm.SessionListener</listener-class>
  </listener>
 

因为 Servlet2.1之后不支持SessionContext 里面getSession(String id) 方法。

但是,我们可以通过HttpSessionListener监听器和全局静态map自己实现一个SessionContext

 

 

public class MySessionContext {
    private static MySessionContext instance;
    private HashMap mymap;

    private MySessionContext() {
        mymap = new HashMap();
    }

    public static MySessionContext getInstance() {
        if (instance == null) {
            instance = new MySessionContext();
        }
        return instance;
    }

    @SuppressWarnings("unchecked")
    public synchronized void AddSession(HttpSession session) {
        if (session != null) {
            mymap.put(session.getId(), session);
        }
    }

    public synchronized void DelSession(HttpSession session) {
        if (session != null) {
            mymap.remove(session.getId());
        }
    }

    public synchronized HttpSession getSession(String session_id) {
        if (session_id == null)
            return null;
        return (HttpSession) mymap.get(session_id);
    }

}
 
public class SessionListener implements HttpSessionListener { 
    
    public static Map userMap = new HashMap();  
    private   MySessionContext myc=MySessionContext.getInstance();  
      
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        System.out.println("start...");
    myc.AddSession(httpSessionEvent.getSession());  
    }  
      
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        System.out.println("end...");
    HttpSession session = httpSessionEvent.getSession();  
    myc.DelSession(session);  
    }  
    } 
 
//根据sessionid获取session
MySessionContext myc= MySessionContext.getInstance();  
HttpSession sess = myc.getSession(sessionId); 

 

分享到:
评论

相关推荐

    获取SessionID

    1. **获取Session对象**: - `request.getSession()`:此方法返回当前请求的`HttpSession`对象。如果当前请求没有对应的Session,则创建一个新的Session对象并返回。 - `getSession`方法通常在用户首次访问网站时...

    Jsp内置对象session总结

    1. 服务器上通过 Session 来分别不同的用户--&gt;sessionID: 任何连接到服务器上的用户,服务器都会为之分配唯一一个不会重复的 sessionID。 2. 判断是不是新的 Session: `public boolean isNew()`, 判断当前的 Session...

    session对象及其常用方法

    每个会话在服务器端都存在一个唯一的标示 SessionID,Session 对象发送到浏览器的唯一数据就是 SessionID,它一般存储在 Cookie 中。 6. public void setMaxInactiveInterval(int interval):设置会话的最大持续...

    cookie与session、sessionid

    - **检索Session**:服务器通过Session ID查找对应的Session对象,从而获取用户的会话信息。 ##### 4.3 Session的优势 - **安全性**:由于Session数据存储在服务器端,相比Cookie更安全。 - **灵活性**:服务器...

    android获取web服务器端session并验证登陆

    后续的每次请求,客户端都会携带这个Session ID,服务器根据ID找到对应的状态信息,从而识别用户身份。 二、Android与服务器交互 在Android应用中,我们可以使用HttpURLConnection或第三方库如OkHttp来与Web服务器...

    6 jsp内建对象之session

    之后,每当该浏览器发送请求时,都会携带这个cookie,服务器通过解析cookie获取session ID,从而找到对应的session数据。 **三、如何在JSP中使用session** 在JSP中,可以直接通过内置的`session`对象进行操作,无需...

    Session对象讲解

    - 浏览器在后续的请求中携带这个Session ID,服务器根据ID找到对应的Session对象。 - 服务器在Session对象中存储用户的相关信息,如登录状态、购物车等。 - 当用户关闭浏览器或Session过期,Session对象会被...

    java中使用session模拟用户登陆

    客户端在后续的每次请求中都会携带这个Session ID,服务器根据ID找到对应的Session,从而获取或更新用户的登录状态。 以下是一个简单的使用Session实现用户登录的步骤: 1. **创建登录页面**:创建一个HTML或JSP...

    6_session对象

    ### 6_session对象 #### 知识点概览 在Web开发中,`session`对象是一种用于维护用户会话状态的重要工具。它允许服务器存储并跟踪每个用户的信息,即使用户在多个页面之间导航也能保持一致的数据。本篇内容将深入...

    jsp中Session对象源码

    2. `getAttribute(String name)`:根据键获取会话中的对象。 3. `removeAttribute(String name)`:从会话中移除指定键对应的对象。 4. `getId()`:返回会话的唯一标识符。 在JSP中,我们可以直接使用内置的 `...

    session对象存储

    本篇将详细探讨如何在JSP(Java Server Pages)环境中利用session对象来存储与用户相关数据。 首先,我们需要理解什么是Session。在Web应用中,每当用户打开一个网站并进行交互时,服务器都会为这个用户创建一个...

    _基于Javaweb内置对象session的仿真.pdf

    setAttribute函数用于将对象存储在Session对象中,getAttribute函数用于从Session对象中获取对象。这些函数的使用可以实现不同页面之间变量的保存和获取。 为了更好地理解Session对象的机理和使用,我们可以通过...

    C#实现简单获取及设置Session类

    1. `GetSession(string name)`方法:这个方法用于根据传入的session名称(`name`)获取对应的Session对象。它通过调用`HttpContext.Current.Session[name]`来实现。`HttpContext.Current`是当前HTTP上下文的静态属性...

    session对象课件

    在ASP.NET的早期版本和2.0中,Session对象是由.NET Framework中的类实现的,它会在用户首次访问网站时自动创建,分配一个唯一的SessionID。这个ID是一个24个字符的字符串,由服务器随机生成,用于标识用户的身份。...

    JSP 内置对象:session 对象.pptx

    这个过程通常是透明的,开发者可以通过`request.getSession()`方法获取到Session对象。Session对象的生命周期从创建时开始,直到服务器判断其达到最大无活动时间(默认通常为30分钟)或者调用`invalidate()`方法时...

    javaweb监听session

    至于如何根据Session ID获取Session,通常在Servlet或Filter中,我们可以直接从HttpServletRequest对象中获取Session。假设我们有一个请求方法,可以这样做: ```java import javax.servlet.http.HttpSession; ...

    JAVA的hibernate手动获取session的方法

    本篇将详细讲解如何在Hibernate中手动获取Session,以及涉及到的相关配置和连接管理。 首先,理解Hibernate的核心组件——Session。Session是Hibernate中的工作单元,它是与数据库交互的主要接口,负责保存、更新和...

    Net内置对象Session,Application等的用法和区别

    当用户访问网站时,服务器为该用户创建一个唯一的SessionID,并将该ID通过Cookie发送到客户端,客户端在每次请求时都会附带这个SessionID。 - **应用场景**: - 登录状态的维护; - 用户个性化设置,如语言选择等...

    session存用户名密码实现用户登录和退出

    之后,客户端每次请求时都会带上这个Session ID,服务器根据ID找到对应的Session数据,从而识别出用户。 在WebStorm这样的集成开发环境中,我们可以创建一个简单的Web应用来实现用户登录和退出功能。以下是一些关键...

    jsp中存取session值简单介绍

    Session的基本工作原理是,当用户第一次访问服务器时,服务器会为该用户创建一个新的session对象,然后通过一个唯一的ID(通常是一个cookie)来标识这个session,将其存储在用户的浏览器中。只要用户不关闭浏览器,...

Global site tag (gtag.js) - Google Analytics