您的位置:首页 > 数据库 > Redis

redis session manager

2015-09-18 11:35 771 查看

redis session-manager

keywords: session manager; redis session manager; redis session;

1. config listener

set JedisPool and cacheEngine, new customer CacheListener extends CacheEngineLoadListener:

CacheEngineLoadListener.java

““java

public class CacheListener extends CacheEngineLoadListener {

private static Log log = LogFactory.getLog(CacheListener.class);

protected WebApplicationContext ctx;

@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext servletContext = event.getServletContext();
this.ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);//get spring ctx
JedisPool jedisPool = this.ctx.getBean(JedisPool.class);//get jedisPool with spring
log.info(jedisPool);
servletContext.setAttribute(RedisCacheEngine.JEDIS_POOL, jedisPool);
super.contextInitialized(event);
}

@Override
public void contextDestroyed(ServletContextEvent event) {
super.contextDestroyed(event);
}


}

““

2. config web.xml (CacheListener & CacheSessionFilter)

ParameterRequiredtypeDefault valuedescription
maxInactiveIntervalfalseint28800session expired time in second
cookieDomainfalsestringsub domainset cookie domain
tldEnablefalsebooleanfalseset cookie use top level domain
cookieSessionIdNamefalsestringSESSIONIDsession id name in cookie
cookieContextPathfalsestring/cookie context path
sessionCacheKeyPrefixfalsestringsessionsession key prefix in redis
sessionAttributeListenersfalsestringnulljavax.servlet.http.HttpSessionListeners name, split with comma
config web.xml

<listener>
<listener-class>com.ezhe.www.listener.CacheListener</listener-class>
</listener>

<!-- session manager filter -->
<filter>
<filter-name>CacheSessionFilter</filter-name>
<filter-class>com.gozap.session.servlet.filter.session.CacheSessionFilter</filter-class>
<init-param>
<description>session expired time in second</description>
<param-name>maxInactiveInterval</param-name>
<param-value>3600</param-value>
</init-param>
<init-param>
<description>session prefix int redis</description>
<param-name>sessionCacheKeyPrefix</param-name>
<param-value>session-ezhe</param-value>
</init-param>
<init-param>
<description>use top level domain for sessionId </description>
<param-name>tldEnable</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CacheSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

.... other filters


如果想各个 子域名之间共享session,设置 tldEnable=true 即可

session-manager.png



https://github.com/blackshadowwalker/session-manager
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: