当前位置: 首页 > 软件库 > 数据库相关 > >

btg-httpsession

分布式 session 实现
授权协议 Apache
开发语言 Java
所属分类 数据库相关
软件类型 开源软件
地区 国产
投 递 者 酆君墨
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

btg-httpsession是实现了httpsession标准适用于普通web项目和jfinal项目的分布式session

使用方式

一、配置方式:
1、通过filter配置(非jfinal项目推荐配置方式);
    /**
     *
     * BTGHttpSessionRequest替换filter(local session管理)
     * 注意:此filter优先级必须大于业务系统处理相关filter
     *
     * 若需要redis、db模式的session管理:
     * 1、请在初始化配置参数init-param
     *     sessionDao:可选,默认为local。
     *        local-使用local的BTGSessionDao;
     *        redis-使用redis的BTGSessionDao
     *        db-使用redis的BTGSessionDao;
     *     dname:可选,默认为jfinal默认;
     *        若sessionDao为redis,该参数则表示RedisPlugin的name;
     *        若sessionDao为db,该参数表示ActiveRecordPlugin的name;
     * 2、或者扩展此类,重写init方法完成sessionDao的初始化即可
     */
    <filter>
        <filter-name>btgsession</filter-name>
        <filter-class>cn.usbtg.httpsession.servlet.filter.BTGHttpSessionFilter</filter-class>
        <init-param>
            <param-name>sessionDao</param-name>
            <param-value>redis</param-value>
        </init-param>
        <init-param>
            <param-name>dname</param-name>
            <param-value>myredis</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>btgsession</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2、(jfinal项目推荐)使用jfinal的plugin+interceptor(interceptor或handler,二选一)配置(若使用默认session管理容器无需配置plugin
    ,仅当需要使用非默认BTGSessionDao实现时,需要在plugin中进行初始化);
    JfinalConfig:可选配置,用户初始化sessionDao实现方案
        public void configPlugin(Plugins me) {
            //local(默认,无需配置)
            BTGSessionDao localSessionDao = new BTGLocalSessionDao();
            BTGSessionPlugin sessionPlugin = new BTGSessionPlugin(localSessionDao);
            me.add(sessionPlugin);

            //redis
            BTGSessionDao redisSessionDao = new BTGRedisSessionDao();
            BTGSessionDao redisSessionDao = new BTGRedisSessionDao("myredis");
            BTGSessionPlugin sessionPlugin = new BTGSessionPlugin(redisSessionDao);
            me.add(sessionPlugin);

            //db
            BTGSessionDao dbSessionDao = new BTGDBSessionDao();
            BTGSessionDao dbSessionDao = new BTGDBSessionDao("mydb");
            BTGSessionPlugin sessionPlugin = new BTGSessionPlugin(dbSessionDao);
            me.add(sessionPlugin);
        }

    Interceptor:必须配置,用于替换session管理机制
        me.add(new BTGHttpSessionInterceptor());

    Handler:必须配置,用于替换session管理机制
        me.add(new BTGHttpSessionHandler());

二、调用API:
1、使用BTGHttpSessionContext接口的实现类BTGStandardSessionContext直接完成对session的操作;
    getSession(String sessionId):BTGStandardSessionContext.getSessionContext().getSession(sessionId)
    getNewSession():BTGStandardSessionContext.getSessionContext().getNewSession()
    更多api请查看BTGSessionContext接口

2、(推荐)使用静态访问类SessionKit完成对session的操作;
    getSession(String sessionId):SessionKit.getSession(sessionId)
    getNewSession():SessionKit.getNewSession()
    更多api请查看SessionKit类
 相关资料
  • 基于jfinal实现的一套:独立于servlet容器的、支持分布式的、企业级session管理解决方案。实现了本地session存储、redis session存储、db session存储,并保留sessionDao接口,可自定义session存储实现。提供了jfinal插件BTGSessionManagerPlugin,用于初始化SessionKit。SessionKit提供BTGSessio

  • 本文向大家介绍浅析PHP分布式中Redis实现Session的方法,包括了浅析PHP分布式中Redis实现Session的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍的是PHP分布式中Redis实现Session的方法,下面话不多说,直接先来看两个方法是什么 方法一: 找到配置文件php.ini,修改为下面内容,保存并重启服务 方法二: 直接在代码中加入以下内容: 注:如果配置文件red

  • 面试题 集群部署时的分布式 session 如何实现? 面试官心理分析 面试官问了你一堆 dubbo 是怎么玩儿的,你会玩儿 dubbo 就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是分布式事务、接口幂等性、分布式锁,还有最后一个就是分布式 session。 当然了,分布式系统中的问题何止这么一点,非常之多,复杂度很高,这里只是说一下常见的几个问题,也是面试的

  • BTG

    BTG是一款采用C++和Libtorrent库开发的,基于GPL协议发布的linux下BT客户端软件。这款BT工具的最大特色就是可以分别基于 Ncurses、Gtkmm和www GUI三种前端对处于后台的BT实体下载后端进行操作。目前这款BT工具正处于开发初期阶段,对“下载选中文件”以及DHT的支持,需要 Rasterbar libtorrent-0.13rc1或更新的版本。不过就其当前优秀灵活的

  • 背景 在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。 一、使用分布式锁要满足的几个条件: 系统是一个分布式系统(关键是分布式,单机的可以

  • 本文向大家介绍Java分布式session存储解决方案图解,包括了Java分布式session存储解决方案图解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要探讨集群后不同Web服务器获取Session数据的问题解决方案。 Session Stick Session Stick 方案即将客户端的每次请求都转发至同一台服务器,这就需要负载均衡器能够根据每次请求的会话标识(SessionId)