当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Uncode-Session

集群session共享组件
授权协议 Apache
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 乐城
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Uncode-Session

非常小巧的集群session公享组件,代码千行以内,避免使用应用容器插件的多种烦恼。

功能概述

  1. 非常小巧的集群session共享组件,类似于spring-session。

  2. 总代码不超过1000行。

  3. 易于使用和扩展。

配置

1. web.xml

<!-- 会话共享过滤器,注意放在其他filter之前 -->
<filter>
    <filter-name>SessionSharingFilter</filter-name>
    <filter-class>cn.uncode.session.SessionSharingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>SessionSharingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

2. 基于Redis的Spring配置

<!-- 配置Redis缓存池(默认基于redis实现,所以只需要配置缓存池就可以了) -->
<bean id="redisSentinelPool" class="com.ksudi.proxycache.store.redis.RedisSentinelPool">
    <property name="hosts">
        <list>
            <value>127.0.0.1:26379</value>
            <value>127.0.0.2:26379</value>
        </list>
    </property>
    <property name="auth" value="123456" />
    <property name="maxIdle" value="5" />
    <property name="maxTotal" value="20" />
    <property name="maxWaitMillis" value="10000" />
    <property name="testOnBorrow" value="true" />
</bean>

自定义扩展

1. 自定义实现类

public class CustomSessionCache implements SessionCache{

    @Override
    public void put(String sessionId, SessionMap sessionMap, int timeout) {

    }

    @Override
    public SessionMap get(String sessionId) {

    }

    @Override
    public void setMaxInactiveInterval(String sessionId, int interval) {

    }

    @Override
    public void destroy(String sessionId) {

    }
}

2. 配置管理器

<!-- 配置缓存 -->
<bean id="customSessionCache" class="cn.uncode.session.*.*.CustomSessionCache" />

<!-- 配置会话缓存管理器 -->
<bean id="sessionCacheManager" class="cn.uncode.session.data.SessionCacheManager">
    <property name="sessionCache" ref="customSessionCache" />
    <!-- 或者使用以下配置,二选一 -->
    <!--
    <property name="beanName" value="sessionCacheManager" />
    -->
</bean>
  • 首先说明一下,hibernate的延迟加载特性(lazy)。所谓的延迟加载就是当真正需要查询数据时才执行数据加载操作。因为hibernate当中支持实体对象,外键会与实体对象关联起来。如果没有这一特性,当查询某一个含有外键的实体对象时,hibernate会把其他实体对象的数据都查询出来。 简单的来说,当你想查询某个对象时,实际上调用了多条查询语句。有了延迟加载特性,就避免了这种情况的发生,当你真正

  • 在SSH中,有时候会遇到not session found for current session的问题,刚刚我也遇到一个,现在总结一下: 错误原因:【下面代码有对应序号解析】 1.有没有开启事务管理器,并且把Hibernate的事务提交给Spring管理 2.transactionManager扫描方法名是否正确或者是所扫描的包名下的方法定义是否正确【重点,多错在这里】 3.Spring事务的切

  •  退出清空session信息: request.getSession().removeAttribute("user");//清空session信息 request.getSession().invalidate();//清除 session 中的所有信息 //退出登录的时候清空cookie信息,cookie需要通过HttpServletRequest,HttpServletRespo

  • 看这篇文章前你可以看看:  session的关闭的机制   第一种方法(继承SessionAware类来取得session,然后用invalidate()方法清理) public class ExitAction extends ActionSupport implements SessionAware{ @Override public String execute() throws Excep

  • Spring为我们解决Hibernate的Session的关闭与开启问题。  Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已

  • session.removeAttribute(“sessionname”)是清除SESSION里的某个属性. session.invalidate()是让SESSION失效. 可以用getAttributeNames来得到所有属性名,然后再removeAttribute 我是如下在Spring中实现的: private void initSession(HttpServletRequest re

  • 我们已经知道如何使用session了,但我们知道,在session中值是不能一直存放的,所以这次我们就来了解下该如何清空session的值。 Session值清空 在java中,session清空有着这么两种情况: 1.session.removeAttribute("sessionname") 用来清除SESSION中某个属性. 2.session.invalidate() 让SESSION失效

  • 的SSH项目之旅(6.session问题解决) - [java]2008-08-07Tag:java spring hibernate struts session 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://fantlam.blogbus.com/logs/27339525.html 2008-07-20 22:25:27,531

  • /** * 注销session * * * @author zhangxuewei * @param session * @return */ @RequestMapping(value = "/logout",method=RequestMethod.GET) public String logout(HttpSession session) { logg

  • session是存在服务器端的东西(通常是文件),当你在页面顶端使用session_start();的时候,系统就会把session从存的地方取出来,放到$_SESSION数组里。 unset($_session) 只是把$_SESSION数组删除掉 session_unregister是注销一个session变量; session_destroy是注销所有的session变量,并且结束sessi

  • 在PHP中: session_unregister是注销一个session变量; session_destroy是注销所有的session变量,并且结束session会话; session_unset()并不注销session变量,但把所有的session变量的值清空.   那么一般在做退出的操作时可以这样做: session_start(); session_unset(); session_d

  • session_unset() 释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的sessionid session_destroy() 删除当前用户对应的session文件以及释放sessionid,内存中的$_SESSION变量内容依然保留 因此,释放用户的session所有资源,需要顺序执行如下代码: 程序代码 <?php $_SESSION['

  • session.removeAttribute(“sessionname”)是清除SESSION里的某个属性. session.setMaxInactiveInterval(2*60);//设置单位为秒,设置为-1永不过期 或许你可以用getAttributeNames来得到所有属性名,然后再removeAttribute

  • 原问题如下: <?php $_SESSION['ab']="a"; session_unset($_SESSION['ab']); echo $_SESSION['ab']; ?> 为什么我session_unset后,仍然能打印出session['ab']的值 “a” 问题补充: 中间一句我换成 unset($_SESSIO

  • 方法一: Enumeration e=session.getAttributeNames(); while(e.hasMoreElements()){ String sessionName=(String)e.nextElement(); System.out.println("存在的session有:"+sessionName); session.removeAttribute(sessi

  • PHP 的 session_encode() 和 session_decode() 函数 本文章来至源码世界   http://www.ymsky.net/views/52573.shtml <? //boolean session_encode() session_register ( 'bgcolor' ); session_register ( 'fontcolor' ); $id = s

  • 郁闷两天的事情今天终于被解决了。弄了个example示例查询,组合 Requisition(申请表单)属性和Ratify(领导审批)属性查询。每次查询几 次就会出现问题。特别是组合没有的实例时就会 浏览器就停在那走不动了, 其它的页面有关查询数据库的也查询不到,表现为客户端浏览器不动。 在myeclipse中有个错误:  java.net.SocketException:   Software  

  • 清除session SysContent.getSession().invalidate(); //清除session 清除cookie //清除cookie HttpServletRequest request = SysContent.getRequest(); Cookie killcookie = CookieUtil.getCookieByName(request, "user"

  • php中session_unset和session_destroy的区别 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 删除session方法: 1、unset ($_SESSION['xxx']) 删除单个session,unset($_SESSION['xxx']) 用来unregister一

  • session_unregister() (PHP 4, PHP 5 < 5.4.0) 从当前会话中注销全局变量 说明session_unregister(string$name):bool session_unregister()unregisters the global variable named$namefrom the current session.Warning 本函数已自 PHP

  • 错误日志:2017-10-11 09:12:58,095 [http-bio-80-exec-11] ERROR [org.apache.shiro.web.servlet.AbstractShiroFilter] - session.touch() method invocation has failed. Unable to updatethe corresponding session's

 相关资料
  • 本文向大家介绍Spring boot集成spring session实现session共享的方法,包括了Spring boot集成spring session实现session共享的方法的使用技巧和注意事项,需要的朋友参考一下 最近使用spring boot开发一个系统,nginx做负载均衡分发请求到多个tomcat,此时访问页面会把请求分发到不同的服务器,session是存在服务器端,如果首次访

  • 本文向大家介绍SpringBoot开发案例 分布式集群共享Session详解,包括了SpringBoot开发案例 分布式集群共享Session详解的使用技巧和注意事项,需要的朋友参考一下 前言 在分布式系统中,为了提升系统性能,通常会对单体项目进行拆分,分解成多个基于功能的微服务,如果有条件,可能还会对单个微服务进行水平扩展,保证服务高可用。 那么问题来了,如果使用传统管理 Session 的方式

  • 本文向大家介绍学习Spring-Session+Redis实现session共享的方法,包括了学习Spring-Session+Redis实现session共享的方法的使用技巧和注意事项,需要的朋友参考一下 1、添加依赖 2、配置 spring-mvc.xml: web.xml添加拦截器: 3、使用spring-session 只要使用标准的servlet api调用session,在底层就会通过

  • 本文向大家介绍Laravel如何使用Redis共享Session,包括了Laravel如何使用Redis共享Session的使用技巧和注意事项,需要的朋友参考一下 一、当系统的访问量上升的时候,使用Redis保存Session可以提高系统的性能,同时也方便多机负载的时候共享Session 1.打开config/database.php。在redis中增加session的连接 2.打开config/

  • 本文向大家介绍Springboot实现多服务器session共享,包括了Springboot实现多服务器session共享的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了springboot实现多服务器session共享的具体代码,供大家参考,具体内容如下 环境: springboot:2.0.4 redis:3.2.100 jdk:1.8 eclipse:4.9.0 1.原理 正常

  • 本文向大家介绍实现Asp与Asp.Net共享Session的方法,包括了实现Asp与Asp.Net共享Session的方法的使用技巧和注意事项,需要的朋友参考一下 在.net中,Session的存储机制已经与Asp的存储机制不一样,虽然可以在同一个IIS下同时运行asp与aspx,但是它们之间不能传递Session。 之前大批系统应用到了asp,在升级过程中,如果完全抛弃asp来重写,一来工作量太