最近在做一个项目需要使用couchbase实现session共享,网上的一些文章摘过来之后很多都不可用,经过一路艰难坎坷的调试,终于将couchbase调试通过,现将具体方法记录下来,分享给大家:
原理是通过过滤器重写request请求类,将request.getSession()方法重写,所有存取参数均指向为couchbase,即利用couchbase代替session
couchbase最新的版本其实引用了JsonDoucment和JsonObject的概念,JsonObject其实就是map的键值对,不过couchbase还是一样的继承了memcached的不支持java对象的。相当恶心的一件事情,所以我采用了base64的序列化方式,将所有存入couchbase中的Object全部序列化之后存放,取的时候反序列化出来
因为是重写的request,所以程序中不用做多大的改动,正常利用request即可
1、开发环境:SpringMVC+easyUI,jdk1.6,tomcat6;Couchbase-Java-Client-2.1.2,couchbase-server-enterprise_x86_64_2.1.0.setup
2、在web.xml中配置过滤器:
<!-- session共享过滤器 -->
<filter>
<display-name>CouchBaseSessionFilter</display-name>
<filter-name>CouchBaseSessionFilter</filter-name>
<filter-class>com.zq.base.couchbase.Couc