`
zhaoshg
  • 浏览: 253027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

根据sessionId获取Session对象

    博客分类:
  • java
阅读更多

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

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

MySessionContext.java:

public class MySessionContext {
    private static HashMap mymap = new HashMap();

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

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

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

MySessionListener.java:

public class MySessionListener implements HttpSessionListener {
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
    MySessionContext.AddSession(httpSessionEvent.getSession());
    }

    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        HttpSession session = httpSessionEvent.getSession();
        MySessionContext.DelSession(session);
    }

}

web.xml添加一个监听器

<listener>
<listener-class>listener.MySessionListener</listener-class>
</listener>

根据sessionId获取Session对象

String sessionId = request.getParameter("sessionId");

HttpSession session = MySessionContext.getSession(sessionId);

分享到:
评论

相关推荐

    Spring mvc 分步式session的实例详解

    服务器在创建session后,会把sessionid以cookie的形式回写给客户端。只要客户端的浏览器不关,每一次访问服务器都会带上这个sessionid。这样就可以在每次请求的时候获取到session的信息。 下面以spring MVC以例来...

    在Django的session中使用User对象的方法

    通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了。 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证。 当然了,Django 也提供了工具来处理这样的常见...

    nodejs使用express获取get和post传值及session验证的方法

    比如,前面传入了一个id的值,nodejs获取就可以req.body.id即可 express的session验证 第一步安装cookie和session的模块,并引入 var session = require('express-session'); var cookieParser = require

    jsp九大内置对象

     ● public Object getAttribute(String key):获取Session对象中含有关键字的对象。  ● public Boolean isNew():判断是否是一个新的客户。  4、Application对象  (1)什么时Application对象  ...

    HTML5 Web缓存和运用程序缓存(cookie,session)

    在介绍HTML5 web缓存前,来认识一下cookie和session: session: ...而session id是存储在cookie中的,也就是说如果浏览器禁用了cookie,那么session会失效!(但是可以通过其它方式实现,如:通过URL传递

    微信小程序请求不能使用session,picker组件不能使用对象的解决办法 ...

    我们知道,微信小程序发起的请求是通过腾讯的服务器再同意发送到我们的服务器的,而session一般是通过客户端cookie中的sessionid来识别客户端的,既然请求都是要通过腾讯的服务器发送到我们的服务器,那么我们的...

    ThinkPHP关于session的操作方法汇总

    get 获取session值 getLocal 获取私有session值 set 设置session值 setLocal 设置私有session值 name 获取或者设置session_name is_set 是否设置session值 is_setLocal 是否设置私有session值 id 获取或者设置...

    php实现session共享的实例方法

    为什么要session共享? ... ... 客户端访问php页面,执行session_start,生成session_id,一般...客户端访问访问不同的页面都会把session_id传到服务端,通过session_id来获取session内容。 流程是这样,可是不同的服务器会对

    django项目搭建与Session使用详解

    session框架让你存储和获取访问者的数据信息,这些信息保存在服务器上(默认是数据库中),以 cookies 的方式发送和获取一个包含 session ID的值,并不是用cookies传递数据本身。 本文给大家详细介绍了关于django...

    asp.net运行提示未将对象引用设置到对象的实例错误解决方法

    6、Session对象为空。 7、对控件赋文本值时,值不存在。 8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。 9、使用FindControl时,控件不存在却没有做预处理。 10、重复定义造成未将对象...

    jdbc基础和参考

    4.构建Session对象 5.开启事务 6.持久化操作 7.事务的提交(正常提交,不正常回滚) 8.关闭资源 主键增长策略: 1.increment:自动增长 select max(id) from table; 找到最大值之后+1赋给要持久化的对象 2....

    HttpClient以及获取页面内容应用

    // 3、获取到InputStream对象,并对内容进行处理 is = entity.getContent(); sc = new Scanner(is); // String filename = path.substring(path.lastIndexOf('/')+1); String filename = "2.txt"; os = ...

    教学、学习必备:jsp教案

    4.3 .1 session对象的ID 110 4.3.2 session对象存储数据 111 4.3.3 session对象的生存周期 115 4.3.4 session对象与URL重写 116 4.3.5 记数器 118 4.4 OUT对象 119 4.5 APPLICATION对象 121 4.5.1 applicaton对象的...

    基于java的聊天室(webjsp)

    当所取出的记录是当前用户发布的聊天数据时(比较取出的聊天记录中的user_id是否与当前用户id相同,当前用户id从session中获取User类对象调用getId()获取),在聊天数据后面添加删除和修改链接。 用户点击删除链接时...

    MF00617-JAVA餐厅点餐管理源码.zip

    用户退出时清空cookie,关闭浏览器cookie自动清空,用户非正常退出下,需等待20分的session失效时间后方可正常登陆,监听session的失效方法在session失效时清空对应的sessionID和用户的关系,清空 用户和session的...

    JSP实例编程100例

    60、session时间与ID 61、Cookie有效时间的设置 62、利用隐藏字段传送数据 63、JSP 使用 JavaBean 的方法 64、JSP 使用 JavaBean 65、范围为 Page 的 JavaBean范例程序 66、范围为 Request的 JavaBean 67、范围为 ...

    城市级联之三级联动

    Util.js:工具js,封装一些ajax的请求方法以及创建ajax的方法还有模拟jQuery的根据id获取dom对象;Struts.xml:主要亮点在配置一个多变级联时防止加载多个表的操作,从而达到解决多表级联操作的时候经常出现的session...

    Android 用户Session管理的设计方案

    相信大家都知道,每一个App都需要登录,登录信息都保存在本地文件中,然后我们就写一堆的操作SharedPreferences的代码了。 现在,你可以完全抛弃这种方法... UserInfo userInfo = SessionManager.getDefault().getUser

    Java-Web-ChatRoom-master.zip

     获取session域中的User对象,判断该对象是否为空,如果为空则用户登录信息过期,提示用户重新登录,跳转到登录界面。 3. 注册功能的实现  先把从前台接收的数据封装起来,然后检查用户输入的两次密码是否一致,...

Global site tag (gtag.js) - Google Analytics