java利用过滤器重写request将session存到couchbase中实现共享
来源:互联网 发布:翻转课堂软件 编辑:程序博客网 时间:2024/04/28 19:00
最近在做一个项目需要使用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.CouchBaseSessionFilter</filter-class>
<init-param>
<param-name>sessionId</param-name>
<param-value>sid</param-value>
</init-param>
<init-param>
<param-name>cookieDomain</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>cookiePath</param-name>
<param-value>/</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CouchBaseSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、过滤器和couchbase 的操作类,打包下载地址:
http://download.csdn.net/detail/changjiadashaoye/8670879
- java利用过滤器重写request将session存到couchbase中实现共享
- Java实现将日志信息存到TXT中
- 将session存到远程服务器中session过期机制
- 将session保存到redis上,实现session共享
- PHP高级配置 ---将session存到Memcache缓存中
- 利用过滤器对hibernate的session管理,实现session在线程范围内的共享
- 利用过滤器对hibernate的session管理,实现session在线程范围内的共享
- HPROSE for java 过滤器 filter + 重写session
- 利用过滤器实现request的编码转换
- Java Web 中application(应用级) session(会话级) request(请求级)如何实现数据共享
- 利用StateServer实现Session共享
- 利用session_set_save_handler()函数将session保存到MySQL数据库中
- 利用session_set_save_handler()函数将session保存到MySQL数据库中
- java如何里将文件存到数据库中
- java将序列化对象存到文件中
- JSF中利用过滤器销毁session bean
- 将ecshop中的session机制重写,从DB移植到Memcache中去
- 将ecshop中的session机制重写,从DB移植到Memcache中去
- Android 框架炼成 教你如何写组件间通信框架EventBus
- C#编程数据导入
- jquery 上传空间uploadify使用笔记
- [spark]解决beeline连接thrift-server加载数据权限问题
- Lmbench
- java利用过滤器重写request将session存到couchbase中实现共享
- 黑马程序员——用正则表达式校验QQ号码
- mac下node.js 安装express后报express command not found
- 说说JSON和JSONP,也许你会豁然开朗
- Ubuntu 修改终端显示的主机名和用户名
- 认识SCI、EI、ISTP、SSCI、INSPEC、SCIE、IEEE、CSCD、CSSCI
- 简单选择排序与堆排序
- Cocoa Touch事件处理流程--响应者链
- cmake tutorial